Pol
Revision:cb584c9
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
datastoreimp.h
Go to the documentation of this file.
1
7
#ifndef DATASTOREIMP_H
8
#define DATASTOREIMP_H
9
10
#include "../../bscript/bobject.h"
11
12
#include "../proplist.h"
13
14
#include <map>
15
#include <string>
16
17
namespace
Pol
18
{
19
namespace
Clib
20
{
21
class
ConfigElem;
22
class
ConfigFile;
23
class
StreamWriter;
24
}
25
namespace
Plib
26
{
27
class
Package;
28
}
29
namespace
Module
30
{
31
class
DataFileElement
:
public
ref_counted
32
{
33
public
:
34
DataFileElement
();
35
explicit
DataFileElement
(
Clib::ConfigElem
& elem );
36
void
printOn(
Clib::StreamWriter
& sw )
const
;
37
38
Core::PropertyList
proplist
;
39
};
40
typedef
ref_ptr<DataFileElement>
DataFileElementRef
;
41
42
// const int DF_KEYTYPE_STRING = 0x00; // currently unneeded
43
const
int
DF_KEYTYPE_INTEGER
= 0x01;
44
45
class
DataFileContents
:
public
ref_counted
46
{
47
public
:
48
DataFileContents
(
DataStoreFile
* dsf );
49
virtual
~
DataFileContents
();
50
size_t
estimateSize()
const
;
51
52
void
load(
Clib::ConfigFile
& cf );
53
void
save(
Clib::StreamWriter
& sw );
54
55
Bscript::BObjectImp
* methodCreateElement(
int
key );
56
Bscript::BObjectImp
* methodCreateElement(
const
std::string& key );
57
58
Bscript::BObjectImp
* methodFindElement(
int
key );
59
Bscript::BObjectImp
* methodFindElement(
const
std::string& key );
60
61
Bscript::BObjectImp
* methodDeleteElement(
int
key );
62
Bscript::BObjectImp
* methodDeleteElement(
const
std::string& key );
63
64
Bscript::BObjectImp
* methodKeys()
const
;
65
66
DataStoreFile
*
dsf
;
67
bool
dirty
;
68
69
private
:
70
typedef
std::map<std::string, DataFileElementRef, Clib::ci_cmp_pred>
ElementsByString
;
71
typedef
std::map<int, DataFileElementRef>
ElementsByInteger
;
72
73
ElementsByString
elements_by_string
;
74
ElementsByInteger
elements_by_integer
;
75
};
76
typedef
ref_ptr<DataFileContents>
DataFileContentsRef
;
77
78
79
typedef
Bscript::BApplicObj<DataFileContentsRef>
DataFileRefObjImpBase
;
80
81
class
DataFileRefObjImp
:
public
DataFileRefObjImpBase
82
{
83
public
:
84
explicit
DataFileRefObjImp
( DataFileContentsRef dfref );
85
86
virtual
const
char
* typeOf()
const
POL_OVERRIDE
;
87
virtual
u8
typeOfInt()
const
POL_OVERRIDE
;
88
virtual
Bscript::BObjectImp
* copy()
const
POL_OVERRIDE
;
89
90
virtual
Bscript::BObjectImp
* call_method(
const
char
* methodname,
91
Bscript::Executor
& ex )
POL_OVERRIDE
;
92
virtual
Bscript::BObjectImp
* call_method_id(
const
int
id
,
Bscript::Executor
& ex,
93
bool
forcebuiltin =
false
)
POL_OVERRIDE
;
94
};
95
96
97
class
DataFileElemObj
98
{
99
public
:
100
DataFileElemObj
( DataFileContentsRef dfcontents, DataFileElementRef dfelem )
101
: dfcontents( dfcontents ), dfelem( dfelem )
102
{
103
}
104
105
public
:
106
DataFileContentsRef
dfcontents
;
107
DataFileElementRef
dfelem
;
108
};
109
110
typedef
Bscript::BApplicObj<DataFileElemObj>
DataElemRefObjImpBase
;
111
class
DataElemRefObjImp
:
public
DataElemRefObjImpBase
112
{
113
public
:
114
DataElemRefObjImp
( DataFileContentsRef dfcontents, DataFileElementRef dflem );
115
virtual
const
char
* typeOf()
const
POL_OVERRIDE
;
116
virtual
u8
typeOfInt()
const
POL_OVERRIDE
;
117
virtual
Bscript::BObjectImp
* copy()
const
POL_OVERRIDE
;
118
119
virtual
Bscript::BObjectImp
* call_method(
const
char
* methodname,
120
Bscript::Executor
& ex )
POL_OVERRIDE
;
121
virtual
Bscript::BObjectImp
* call_method_id(
const
int
id
,
Bscript::Executor
& ex,
122
bool
forcebuiltin =
false
)
POL_OVERRIDE
;
123
};
124
125
class
DataStoreFile
126
{
127
public
:
128
explicit
DataStoreFile
(
Clib::ConfigElem
& elem );
129
DataStoreFile
(
const
std::string& descriptor,
const
Plib::Package
* pkg,
const
std::string&
name
,
130
int
flags );
131
virtual
~
DataStoreFile
();
132
size_t
estimateSize()
const
;
133
bool
loaded()
const
;
134
void
load();
135
void
save()
const
;
136
std::string filename()
const
;
137
std::string filename(
unsigned
ver )
const
;
138
void
printOn(
Clib::StreamWriter
& sw )
const
;
139
140
std::string
descriptor
;
141
std::string
name
;
142
143
std::string
pkgname
;
144
const
Plib::Package
*
pkg
;
145
unsigned
version
;
146
unsigned
oldversion
;
147
int
flags
;
148
bool
unload
;
149
150
unsigned
delversion
;
151
152
DataFileContentsRef
dfcontents
;
153
};
154
}
155
}
156
157
#endif
Pol::Module::DataStoreFile::name
std::string name
Definition:
datastoreimp.h:141
u8
unsigned char u8
Definition:
rawtypes.h:25
Pol::Bscript::BApplicObj
Definition:
bobject.h:904
Pol::Module::DataStoreFile::dfcontents
DataFileContentsRef dfcontents
Definition:
datastoreimp.h:152
Pol::Module::DataFileContents::elements_by_integer
ElementsByInteger elements_by_integer
Definition:
datastoreimp.h:74
POL_OVERRIDE
#define POL_OVERRIDE
Definition:
compilerspecifics.h:74
Pol::Module::DataElemRefObjImpBase
Bscript::BApplicObj< DataFileElemObj > DataElemRefObjImpBase
Definition:
datastoreimp.h:110
ref_counted
Definition:
refptr.h:30
Pol::Module::DataFileContents::ElementsByInteger
std::map< int, DataFileElementRef > ElementsByInteger
Definition:
datastoreimp.h:71
Pol::Module::DataStoreFile::version
unsigned version
Definition:
datastoreimp.h:145
Pol::Module::DataFileContents::elements_by_string
ElementsByString elements_by_string
Definition:
datastoreimp.h:73
Pol::Module::DataFileElement
Definition:
datastoreimp.h:31
Pol::Module::DataFileElemObj
Definition:
datastoreimp.h:97
Pol::Clib::StreamWriter
Definition:
streamsaver.h:21
Pol::Module::DataFileRefObjImpBase
Bscript::BApplicObj< DataFileContentsRef > DataFileRefObjImpBase
Definition:
datastoreimp.h:79
Pol::Module::DataFileContents::ElementsByString
std::map< std::string, DataFileElementRef, Clib::ci_cmp_pred > ElementsByString
Definition:
datastoreimp.h:70
Pol::Module::DataStoreFile::unload
bool unload
Definition:
datastoreimp.h:148
Pol::Module::DataFileElementRef
ref_ptr< DataFileElement > DataFileElementRef
Definition:
datastoreimp.h:40
Pol::Module::DataFileContents::dsf
DataStoreFile * dsf
Definition:
datastoreimp.h:66
Pol::Module::DataFileContentsRef
ref_ptr< DataFileContents > DataFileContentsRef
Definition:
datastoreimp.h:76
Pol::Module::DataElemRefObjImp
Definition:
datastoreimp.h:111
Pol::Module::DataStoreFile::delversion
unsigned delversion
Definition:
datastoreimp.h:150
Pol::Module::DataStoreFile
Definition:
datastoreimp.h:125
Pol::Plib::Package
Definition:
pkg.h:41
ref_ptr< DataFileElement >
Pol::Module::DataFileElement::proplist
Core::PropertyList proplist
Definition:
datastoreimp.h:38
Pol::Module::DataStoreFile::pkgname
std::string pkgname
Definition:
datastoreimp.h:143
Pol::Module::DataStoreFile::descriptor
std::string descriptor
Definition:
datastoreimp.h:140
Pol::Module::DataStoreFile::pkg
const Plib::Package * pkg
Definition:
datastoreimp.h:144
Pol::Module::DataFileContents
Definition:
datastoreimp.h:45
Pol::Core::PropertyList
Definition:
proplist.h:132
Pol::Bscript::BObjectImp
Definition:
bobject.h:59
Pol::Module::DataFileContents::dirty
bool dirty
Definition:
datastoreimp.h:67
Pol::Module::DataFileElemObj::DataFileElemObj
DataFileElemObj(DataFileContentsRef dfcontents, DataFileElementRef dfelem)
Definition:
datastoreimp.h:100
name
std::string name
Definition:
osmod.cpp:943
Pol::Module::DataStoreFile::flags
int flags
Definition:
datastoreimp.h:147
Pol::Clib::ConfigFile
Definition:
cfgfile.h:44
Pol::Module::DataFileElemObj::dfelem
DataFileElementRef dfelem
Definition:
datastoreimp.h:107
Pol::Module::DF_KEYTYPE_INTEGER
const int DF_KEYTYPE_INTEGER
Definition:
datastoreimp.h:43
Pol::Module::DataStoreFile::oldversion
unsigned oldversion
Definition:
datastoreimp.h:146
Pol::Clib::ConfigElem
Definition:
cfgelem.h:53
Pol::Module::DataFileElemObj::dfcontents
DataFileContentsRef dfcontents
Definition:
datastoreimp.h:106
Pol
Definition:
berror.cpp:12
Pol::Module::DataFileRefObjImp
Definition:
datastoreimp.h:81
Pol::Bscript::Executor
Definition:
executor.h:81
pol
module
datastoreimp.h
Generated on Wed Oct 10 2018 02:42:11 for Pol by
1.8.11