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/optional.hpp>
21 
22 #include <stdio.h>
23 #include <memory>
24 
26  : public std::enable_shared_from_this<DtObjectDB>
27 {
28 public:
29  typedef std::shared_ptr<DtObjectDB> Ptr;
30  typedef DtU64 Offset;
31 
32  class Cursor;
33 
35  enum CreateFile { DoNotCreate, Create };
36  enum EraseExisting { DoNotErase, Erase };
37 
39  static Ptr Make(const DtFilename& filename);
40 
42  virtual ~DtObjectDB();
43 
45  virtual const DtFilename& filename() const;
46 
49  virtual std::unique_ptr<Cursor> makeCursor(CreateFile, EraseExisting);
50 
51 protected:
52  explicit DtObjectDB(const DtFilename& filename);
53 
54  const DtFilename myFilename;
55 };
56 
57 class DT_DLL_vrfutil DtObjectDB::Cursor
58 {
59 public:
61  virtual ~Cursor();
62 
66  virtual Offset currentOffset() const;
67 
70  virtual void setCurrentOffset(Offset offset);
71 
73  virtual bool eof() const;
74 
76  virtual bool error() const;
77 
79  virtual void flush();
80 
83  virtual bool readBool();
84  virtual DtInt32 readInt32();
85  virtual DtU32 readUInt32();
86  virtual DtU64 readUInt64();
87  virtual DtFloat64 readFloat64();
88  virtual DtString readString();
89  virtual DtVector readVector();
91 
94  virtual void writeBool(bool);
95  virtual void writeInt32(DtInt32);
96  virtual void writeUInt32(DtU32);
97  virtual void writeUInt64(DtU64);
98  virtual void writeFloat64(DtFloat64);
99  virtual void writeString(const DtString&);
100  virtual void writeVector(const DtVector&);
102 
103 protected:
104  friend class DtObjectDB;
105 
106  explicit Cursor(const DtObjectDB::Ptr& db, CreateFile, EraseExisting);
107 
109  FILE* myFile;
110 };
FILE * myFile
Definition: objectDB.h:109
const char * filename
Definition: ioapi.h:38
DtU64 Offset
Definition: objectDB.h:30
DtObjectDB::Ptr myDB
Definition: objectDB.h:108
int DtInt32
Definition: vrvControlStructTypes.h:31
double DtFloat64
Definition: vrvControlStructTypes.h:36
Definition: objectDB.h:35
Cursor(const DtObjectDB::Ptr &db, CreateFile, EraseExisting)
Definition: asyncJobServer.h:39
std::shared_ptr< DtObjectDB > Ptr
Definition: objectDB.h:29
#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:36
Contains DtObjectDB. Binary archive which can store objects with shared references to each other...
Definition: objectDB.h:25
voidpf uLong offset
Definition: ioapi.h:42
CreateFile
Flags.
Definition: objectDB.h:35
const DtFilename myFilename
Definition: objectDB.h:54

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)