summaryrefslogtreecommitdiff
path: root/inc/DDF_IOStream.hxx
blob: 831e0bb6afaa63855c9164ad4092f864bd7fef3a (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
// File:	DDF_IOStream.hxx
//      	--------------
// Author:	DAUTRY Philippe
//		<fid@fox.paris1.matra-dtv.fr>
// Copyright:	Matra Datavision 1997

// Version:	0.0
// History:	Version	Date		Purpose
//		0.0	Aug 22 1997	Creation

// This file has been written using FSD_File.hxx as template.
// This is a specific adaptation for Draw use (save & restore commands).
// It is not sure at all this code is portable on any other plateform than
// SUN OS. Don't use it anywhere else.
// Thanks for comprehension. (22 august 97)


#ifndef DDF_IOStream_HeaderFile
#define DDF_IOStream_HeaderFile

// File generated by CPPExt (Value)
//                     Copyright (C) 1991,1995 by
//  
//                      MATRA DATAVISION, FRANCE
//  
// This software is furnished in accordance with the terms and conditions
// of the contract and with the inclusion of the above copyright notice.
// This software or any other copy thereof may not be provided or otherwise
// be made available to any other person. No title to an ownership of the
// software is hereby transferred.
//  
// At the termination of the contract, the software and all copies of this
// software must be deleted.

#include <stdio.h>

#ifndef _Storage_BaseDriver_HeaderFile
#include <Storage_BaseDriver.hxx>
#endif
#ifndef _Storage_Error_HeaderFile
#include <Storage_Error.hxx>
#endif
#ifndef _Storage_OpenMode_HeaderFile
#include <Storage_OpenMode.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.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
#ifndef _Standard_CString_HeaderFile
#include <Standard_CString.hxx>
#endif
#include <Storage_Position.hxx>

class Storage_StreamTypeMismatchError;
class Storage_StreamFormatError;
class Storage_StreamWriteError;
class Storage_StreamExtCharParityError;

class TColStd_SequenceOfExtendedString;

#ifndef Standard_EXPORT
#ifdef WNT
#define Standard_EXPORT __declspec(dllexport)
#else
#define Standard_EXPORT
#endif
#endif
#ifdef WNT
#pragma warning (disable : 4275)
#endif

class Standard_EXPORT DDF_IOStream  : public Storage_BaseDriver {

public:

 // Methods PUBLIC
 // 
DDF_IOStream();
  Storage_Error Open(const TCollection_AsciiString& aName,const Storage_OpenMode aMode) ;
  Storage_Error Open(istream* anIStream) ;
  Storage_Error Open(ostream* anOStream) ;
  Standard_Boolean IsEnd() ;
  Storage_Position Tell() { return -1; }
static  Storage_Error IsGoodFileType(istream* anIStream) ;
  Storage_Error BeginWriteInfoSection() ;
  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) ;
  Storage_Error EndWriteInfoSection() ;
  Storage_Error BeginReadInfoSection() ;
  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) ;
  Storage_Error EndReadInfoSection() ;
  Storage_Error BeginWriteCommentSection() ;
  void WriteComment(const TColStd_SequenceOfExtendedString& userComments) ;
  Storage_Error EndWriteCommentSection() ;
  Storage_Error BeginReadCommentSection() ;
  void ReadComment(TColStd_SequenceOfExtendedString& userComments) ;
  Storage_Error EndReadCommentSection() ;
  Storage_Error BeginWriteTypeSection() ;
  void SetTypeSectionSize(const Standard_Integer aSize) ;
  void WriteTypeInformations(const Standard_Integer typeNum,const TCollection_AsciiString& typeName) ;
  Storage_Error EndWriteTypeSection() ;
  Storage_Error BeginReadTypeSection() ;
  Standard_Integer TypeSectionSize() ;
  void ReadTypeInformations(Standard_Integer& typeNum,TCollection_AsciiString& typeName) ;
  Storage_Error EndReadTypeSection() ;
  Storage_Error BeginWriteRootSection() ;
  void SetRootSectionSize(const Standard_Integer aSize) ;
  void WriteRoot(const TCollection_AsciiString& rootName,const Standard_Integer aRef,const TCollection_AsciiString& aType) ;
  Storage_Error EndWriteRootSection() ;
  Storage_Error BeginReadRootSection() ;
  Standard_Integer RootSectionSize() ;
  void ReadRoot(TCollection_AsciiString& rootName,Standard_Integer& aRef,TCollection_AsciiString& aType) ;
  Storage_Error EndReadRootSection() ;
  Storage_Error BeginWriteRefSection() ;
  void SetRefSectionSize(const Standard_Integer aSize) ;
  void WriteReferenceType(const Standard_Integer reference,const Standard_Integer typeNum) ;
  Storage_Error EndWriteRefSection() ;
  Storage_Error BeginReadRefSection() ;
  Standard_Integer RefSectionSize() ;
  void ReadReferenceType(Standard_Integer& reference,Standard_Integer& typeNum) ;
  Storage_Error EndReadRefSection() ;
  Storage_Error BeginWriteDataSection() ;
  void WritePersistentObjectHeader(const Standard_Integer aRef,const Standard_Integer aType) ;
  void BeginWritePersistentObjectData() ;
  void BeginWriteObjectData() ;
  void EndWriteObjectData() ;
  void EndWritePersistentObjectData() ;
  Storage_Error EndWriteDataSection() ;
  Storage_Error BeginReadDataSection() ;
  void ReadPersistentObjectHeader(Standard_Integer& aRef,Standard_Integer& aType) ;
  void BeginReadPersistentObjectData() ;
  void BeginReadObjectData() ;
  void EndReadObjectData() ;
  void EndReadPersistentObjectData() ;
  Storage_Error EndReadDataSection() ;
  void SkipObject() ;
  Storage_BaseDriver& PutReference(const Standard_Integer aValue) ;
  Storage_BaseDriver& PutCharacter(const Standard_Character aValue) ;
  Storage_BaseDriver& operator <<(const Standard_Character aValue) 
{
  return PutCharacter(aValue);
}

  Storage_BaseDriver& PutExtCharacter(const Standard_ExtCharacter aValue) ;
  Storage_BaseDriver& operator <<(const Standard_ExtCharacter aValue) 
{
  return PutExtCharacter(aValue);
}

  Storage_BaseDriver& PutInteger(const Standard_Integer aValue) ;
  Storage_BaseDriver& operator <<(const Standard_Integer aValue) 
{
  return PutInteger(aValue);
}

  Storage_BaseDriver& PutBoolean(const Standard_Boolean aValue) ;
  Storage_BaseDriver& operator <<(const Standard_Boolean aValue) 
{
  return PutBoolean(aValue);
}

  Storage_BaseDriver& PutReal(const Standard_Real aValue) ;
  Storage_BaseDriver& operator <<(const Standard_Real aValue) 
{
  return PutReal(aValue);
}

  Storage_BaseDriver& PutShortReal(const Standard_ShortReal aValue) ;
  Storage_BaseDriver& operator <<(const Standard_ShortReal aValue) 
{
  return PutShortReal(aValue);
}

  Storage_BaseDriver& GetReference(Standard_Integer& aValue) ;
  Storage_BaseDriver& GetCharacter(Standard_Character& aValue) ;
  Storage_BaseDriver& operator >>(Standard_Character& aValue) 
{
  return GetCharacter(aValue);
}

  Storage_BaseDriver& GetExtCharacter(Standard_ExtCharacter& aValue) ;
  Storage_BaseDriver& operator >>(Standard_ExtCharacter& aValue) 
{
  return GetExtCharacter(aValue);
}

  Storage_BaseDriver& GetInteger(Standard_Integer& aValue) ;
  Storage_BaseDriver& operator >>(Standard_Integer& aValue) 
{
  return GetInteger(aValue);
}

  Storage_BaseDriver& GetBoolean(Standard_Boolean& aValue) ;
  Storage_BaseDriver& operator >>(Standard_Boolean& aValue) 
{
  return GetBoolean(aValue);
}

  Storage_BaseDriver& GetReal(Standard_Real& aValue) ;
  Storage_BaseDriver& operator >>(Standard_Real& aValue) 
{
  return GetReal(aValue);
}

  Storage_BaseDriver& GetShortReal(Standard_ShortReal& aValue) ;
  Storage_BaseDriver& operator >>(Standard_ShortReal& aValue) 
{
  return GetShortReal(aValue);
}

  Storage_Error Close() ;
  void Destroy() ;
~DDF_IOStream()
{
  Destroy();
}






protected:

 // Methods PROTECTED
 // 
  void ReadLine(TCollection_AsciiString& buffer) ;
  void ReadWord(TCollection_AsciiString& buffer) ;
  void ReadExtendedLine(TCollection_ExtendedString& buffer) ;
  void WriteExtendedLine(const TCollection_ExtendedString& buffer) ;
  void ReadChar(TCollection_AsciiString& buffer,const Standard_Integer rsize) ;
  void ReadString(TCollection_AsciiString& buffer) ;
  void FlushEndOfLine() ;
  Storage_Error FindTag(const Standard_CString aTag) ;


 // Fields PROTECTED
 //


private: 

 // Methods PRIVATE
 // 
static const Standard_CString MagicNumber() ;


 // Fields PRIVATE
 //
//FSD_FStream myStream;
istream* myIStream;
ostream* myOStream;


};

#ifdef WNT
#pragma warning (default : 4275)
#endif


// other inline functions and methods (like "C++: function call" methods)
//
#endif