summaryrefslogtreecommitdiff
path: root/inc/Storage_BaseDriver.hxx
blob: c40298754e479ed43bebdf135dd88fc88f24d520 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _Storage_BaseDriver_HeaderFile
#define _Storage_BaseDriver_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Storage_OpenMode_HeaderFile
#include <Storage_OpenMode.hxx>
#endif
#ifndef _TCollection_AsciiString_HeaderFile
#include <TCollection_AsciiString.hxx>
#endif
#ifndef _Storage_Error_HeaderFile
#include <Storage_Error.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Storage_Position_HeaderFile
#include <Storage_Position.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Character_HeaderFile
#include <Standard_Character.hxx>
#endif
#ifndef _Standard_ExtCharacter_HeaderFile
#include <Standard_ExtCharacter.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_ShortReal_HeaderFile
#include <Standard_ShortReal.hxx>
#endif
class Storage_StreamTypeMismatchError;
class Storage_StreamFormatError;
class Storage_StreamWriteError;
class Storage_StreamExtCharParityError;
class TCollection_AsciiString;
class TCollection_ExtendedString;
class TColStd_SequenceOfAsciiString;
class TColStd_SequenceOfExtendedString;


//! Root class for drivers. A driver assigns a physical container <br>
//! to data to be stored or retrieved, for instance a file. <br>
//! The FSD package provides two derived concrete classes : <br>
//! -   FSD_File is a general driver which defines a <br>
//!   file as the container of data. <br>
class Storage_BaseDriver  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  
  Standard_EXPORT     void Delete() ;
Standard_EXPORT virtual ~Storage_BaseDriver(){Delete();}
  
  Standard_EXPORT   virtual  Storage_Error Open(const TCollection_AsciiString& aName,const Storage_OpenMode aMode)  = 0;
  
        TCollection_AsciiString Name() const;
  
        Storage_OpenMode OpenMode() const;
  //! returns True if we are at end of the stream <br>
  Standard_EXPORT   virtual  Standard_Boolean IsEnd()  = 0;
  //! return position in the file. Return -1 upon error. <br>
  Standard_EXPORT   virtual  Storage_Position Tell()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteInfoSection()  = 0;
  
  Standard_EXPORT   virtual  void WriteInfo(const Standard_Integer nbObj,const TCollection_AsciiString& dbVersion,const TCollection_AsciiString& date,const TCollection_AsciiString& schemaName,const TCollection_AsciiString& schemaVersion,const TCollection_ExtendedString& appName,const TCollection_AsciiString& appVersion,const TCollection_ExtendedString& objectType,const TColStd_SequenceOfAsciiString& userInfo)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteInfoSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadInfoSection()  = 0;
  
  Standard_EXPORT   virtual  void ReadInfo(Standard_Integer& nbObj,TCollection_AsciiString& dbVersion,TCollection_AsciiString& date,TCollection_AsciiString& schemaName,TCollection_AsciiString& schemaVersion,TCollection_ExtendedString& appName,TCollection_AsciiString& appVersion,TCollection_ExtendedString& objectType,TColStd_SequenceOfAsciiString& userInfo)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadInfoSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteCommentSection()  = 0;
  
  Standard_EXPORT   virtual  void WriteComment(const TColStd_SequenceOfExtendedString& userComments)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteCommentSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadCommentSection()  = 0;
  
  Standard_EXPORT   virtual  void ReadComment(TColStd_SequenceOfExtendedString& userComments)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadCommentSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteTypeSection()  = 0;
  
  Standard_EXPORT   virtual  void SetTypeSectionSize(const Standard_Integer aSize)  = 0;
  
  Standard_EXPORT   virtual  void WriteTypeInformations(const Standard_Integer typeNum,const TCollection_AsciiString& typeName)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteTypeSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadTypeSection()  = 0;
  
  Standard_EXPORT   virtual  Standard_Integer TypeSectionSize()  = 0;
  
  Standard_EXPORT   virtual  void ReadTypeInformations(Standard_Integer& typeNum,TCollection_AsciiString& typeName)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadTypeSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteRootSection()  = 0;
  
  Standard_EXPORT   virtual  void SetRootSectionSize(const Standard_Integer aSize)  = 0;
  
  Standard_EXPORT   virtual  void WriteRoot(const TCollection_AsciiString& rootName,const Standard_Integer aRef,const TCollection_AsciiString& aType)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteRootSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadRootSection()  = 0;
  
  Standard_EXPORT   virtual  Standard_Integer RootSectionSize()  = 0;
  
  Standard_EXPORT   virtual  void ReadRoot(TCollection_AsciiString& rootName,Standard_Integer& aRef,TCollection_AsciiString& aType)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadRootSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteRefSection()  = 0;
  
  Standard_EXPORT   virtual  void SetRefSectionSize(const Standard_Integer aSize)  = 0;
  
  Standard_EXPORT   virtual  void WriteReferenceType(const Standard_Integer reference,const Standard_Integer typeNum)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteRefSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadRefSection()  = 0;
  
  Standard_EXPORT   virtual  Standard_Integer RefSectionSize()  = 0;
  
  Standard_EXPORT   virtual  void ReadReferenceType(Standard_Integer& reference,Standard_Integer& typeNum)  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadRefSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginWriteDataSection()  = 0;
  
  Standard_EXPORT   virtual  void WritePersistentObjectHeader(const Standard_Integer aRef,const Standard_Integer aType)  = 0;
  
  Standard_EXPORT   virtual  void BeginWritePersistentObjectData()  = 0;
  
  Standard_EXPORT   virtual  void BeginWriteObjectData()  = 0;
  
  Standard_EXPORT   virtual  void EndWriteObjectData()  = 0;
  
  Standard_EXPORT   virtual  void EndWritePersistentObjectData()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndWriteDataSection()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error BeginReadDataSection()  = 0;
  
  Standard_EXPORT   virtual  void ReadPersistentObjectHeader(Standard_Integer& aRef,Standard_Integer& aType)  = 0;
  
  Standard_EXPORT   virtual  void BeginReadPersistentObjectData()  = 0;
  
  Standard_EXPORT   virtual  void BeginReadObjectData()  = 0;
  
  Standard_EXPORT   virtual  void EndReadObjectData()  = 0;
  
  Standard_EXPORT   virtual  void EndReadPersistentObjectData()  = 0;
  
  Standard_EXPORT   virtual  Storage_Error EndReadDataSection()  = 0;
  
  Standard_EXPORT   virtual  void SkipObject()  = 0;
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutReference(const Standard_Integer aValue)  = 0;
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutCharacter(const Standard_Character aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_Character aValue) 
{
  return PutCharacter(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutExtCharacter(const Standard_ExtCharacter aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_ExtCharacter aValue) 
{
  return PutExtCharacter(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutInteger(const Standard_Integer aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_Integer aValue) 
{
  return PutInteger(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutBoolean(const Standard_Boolean aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_Boolean aValue) 
{
  return PutBoolean(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutReal(const Standard_Real aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_Real aValue) 
{
  return PutReal(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& PutShortReal(const Standard_ShortReal aValue)  = 0;
    Storage_BaseDriver& operator <<(const Standard_ShortReal aValue) 
{
  return PutShortReal(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetReference(Standard_Integer& aValue)  = 0;
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetCharacter(Standard_Character& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_Character& aValue) 
{
  return GetCharacter(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetExtCharacter(Standard_ExtCharacter& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_ExtCharacter& aValue) 
{
  return GetExtCharacter(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetInteger(Standard_Integer& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_Integer& aValue) 
{
  return GetInteger(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetBoolean(Standard_Boolean& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_Boolean& aValue) 
{
  return GetBoolean(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetReal(Standard_Real& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_Real& aValue) 
{
  return GetReal(aValue);
}
  
  Standard_EXPORT   virtual  Storage_BaseDriver& GetShortReal(Standard_ShortReal& aValue)  = 0;
    Storage_BaseDriver& operator >>(Standard_ShortReal& aValue) 
{
  return GetShortReal(aValue);
}
  
  Standard_EXPORT   virtual  Storage_Error Close()  = 0;





protected:

  
  Standard_EXPORT   Storage_BaseDriver();
  
        void SetName(const TCollection_AsciiString& aName) ;
  
        void SetOpenMode(const Storage_OpenMode aMode) ;




private:



Storage_OpenMode myOpenMode;
TCollection_AsciiString myName;


};


#include <Storage_BaseDriver.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif