VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
objectDB.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfutil/vrfutilDefines.h>
15 
16 #include <vlutil/vlFilename.h>
17 
18 #include <matrix/vlVector.h>
19 
20 #include <boost/shared_ptr.hpp>
21 #include <boost/enable_shared_from_this.hpp>
22 #include <boost/optional.hpp>
23 
24 #include <stdio.h>
25 
27  : public boost::enable_shared_from_this<DtObjectDB>
28 {
29 public:
30  typedef boost::shared_ptr<DtObjectDB> Ptr;
31  typedef DtU64 Offset;
32 
33  class Cursor;
34 
36  enum CreateFile { DoNotCreate, Create };
37  enum EraseExisting { DoNotErase, Erase };
38 
40  static Ptr Make(const DtFilename& filename);
41 
43  virtual ~DtObjectDB();
44 
46  virtual const DtFilename& filename() const;
47 
50  virtual std::auto_ptr<Cursor> makeCursor(CreateFile, EraseExisting);
51 
52 protected:
53  explicit DtObjectDB(const DtFilename& filename);
54 
55  const DtFilename myFilename;
56 };
57 
59 {
60 public:
62  virtual ~Cursor();
63 
67  virtual Offset currentOffset() const;
68 
71  virtual void setCurrentOffset(Offset offset);
72 
74  virtual bool eof() const;
75 
77  virtual bool error() const;
78 
80  virtual void flush();
81 
84  virtual bool readBool();
85  virtual DtInt32 readInt32();
86  virtual DtU32 readUInt32();
87  virtual DtU64 readUInt64();
88  virtual DtFloat64 readFloat64();
89  virtual DtString readString();
90  virtual DtVector readVector();
92 
95  virtual void writeBool(bool);
96  virtual void writeInt32(DtInt32);
97  virtual void writeUInt32(DtU32);
98  virtual void writeUInt64(DtU64);
99  virtual void writeFloat64(DtFloat64);
100  virtual void writeString(const DtString&);
101  virtual void writeVector(const DtVector&);
103 
104 protected:
105  friend class DtObjectDB;
106 
107  explicit Cursor(const DtObjectDB::Ptr& db, CreateFile, EraseExisting);
108 
110  FILE* myFile;
111 };
FILE * myFile
Definition: objectDB.h:110
boost::shared_ptr< DtObjectDB > Ptr
Definition: objectDB.h:30
const char * filename
Definition: ioapi.h:38
DtU64 Offset
Definition: objectDB.h:31
DtObjectDB::Ptr myDB
Definition: objectDB.h:109
int DtInt32
Definition: vrvControlStructTypes.h:31
double DtFloat64
Definition: vrvControlStructTypes.h:36
Definition: objectDB.h:36
Cursor(const DtObjectDB::Ptr &db, CreateFile, EraseExisting)
Definition: asyncJobServer.h:39
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
EraseExisting
Definition: objectDB.h:37
Contains DtObjectDB. Binary archive which can store objects with shared references to each other...
Definition: objectDB.h:26
voidpf uLong offset
Definition: ioapi.h:42
CreateFile
Flags.
Definition: objectDB.h:36
const DtFilename myFilename
Definition: objectDB.h:55

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)