0026377: Passing Handle objects as arguments to functions as non-const reference...
[occt.git] / src / DDF / DDF_IOStream.hxx
CommitLineData
b311480e 1// Created on: 1997-08-22
2// Created by: DAUTRY Philippe
3// Copyright (c) 1997-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
d5f74e42 8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
7fd59977 16
17// This file has been written using FSD_File.hxx as template.
18// This is a specific adaptation for Draw use (save & restore commands).
19// It is not sure at all this code is portable on any other plateform than
20// SUN OS. Don't use it anywhere else.
21// Thanks for comprehension. (22 august 97)
22
23
24#ifndef DDF_IOStream_HeaderFile
25#define DDF_IOStream_HeaderFile
26
7fd59977 27#include <stdio.h>
28
7fd59977 29#include <Storage_BaseDriver.hxx>
7fd59977 30#include <Storage_Error.hxx>
7fd59977 31#include <Storage_OpenMode.hxx>
7fd59977 32#include <Storage_Position.hxx>
33
34class Storage_StreamTypeMismatchError;
35class Storage_StreamFormatError;
36class Storage_StreamWriteError;
37class Storage_StreamExtCharParityError;
38
b7c077b9 39#include <TColStd_SequenceOfExtendedString.hxx>
7fd59977 40
b7c077b9 41class DDF_IOStream : public Storage_BaseDriver {
7fd59977 42
43public:
44
45 // Methods PUBLIC
46 //
47DDF_IOStream();
48 Storage_Error Open(const TCollection_AsciiString& aName,const Storage_OpenMode aMode) ;
49 Storage_Error Open(istream* anIStream) ;
50 Storage_Error Open(ostream* anOStream) ;
51 Standard_Boolean IsEnd() ;
52 Storage_Position Tell() { return -1; }
53static Storage_Error IsGoodFileType(istream* anIStream) ;
54 Storage_Error BeginWriteInfoSection() ;
55 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) ;
56 Storage_Error EndWriteInfoSection() ;
57 Storage_Error BeginReadInfoSection() ;
58 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) ;
4ff92abe 59 void ReadCompleteInfo (Standard_IStream& theIStream, Handle(Storage_Data)& theData);
7fd59977 60 Storage_Error EndReadInfoSection() ;
61 Storage_Error BeginWriteCommentSection() ;
62 void WriteComment(const TColStd_SequenceOfExtendedString& userComments) ;
63 Storage_Error EndWriteCommentSection() ;
64 Storage_Error BeginReadCommentSection() ;
65 void ReadComment(TColStd_SequenceOfExtendedString& userComments) ;
66 Storage_Error EndReadCommentSection() ;
67 Storage_Error BeginWriteTypeSection() ;
68 void SetTypeSectionSize(const Standard_Integer aSize) ;
69 void WriteTypeInformations(const Standard_Integer typeNum,const TCollection_AsciiString& typeName) ;
70 Storage_Error EndWriteTypeSection() ;
71 Storage_Error BeginReadTypeSection() ;
72 Standard_Integer TypeSectionSize() ;
73 void ReadTypeInformations(Standard_Integer& typeNum,TCollection_AsciiString& typeName) ;
74 Storage_Error EndReadTypeSection() ;
75 Storage_Error BeginWriteRootSection() ;
76 void SetRootSectionSize(const Standard_Integer aSize) ;
77 void WriteRoot(const TCollection_AsciiString& rootName,const Standard_Integer aRef,const TCollection_AsciiString& aType) ;
78 Storage_Error EndWriteRootSection() ;
79 Storage_Error BeginReadRootSection() ;
80 Standard_Integer RootSectionSize() ;
81 void ReadRoot(TCollection_AsciiString& rootName,Standard_Integer& aRef,TCollection_AsciiString& aType) ;
82 Storage_Error EndReadRootSection() ;
83 Storage_Error BeginWriteRefSection() ;
84 void SetRefSectionSize(const Standard_Integer aSize) ;
85 void WriteReferenceType(const Standard_Integer reference,const Standard_Integer typeNum) ;
86 Storage_Error EndWriteRefSection() ;
87 Storage_Error BeginReadRefSection() ;
88 Standard_Integer RefSectionSize() ;
89 void ReadReferenceType(Standard_Integer& reference,Standard_Integer& typeNum) ;
90 Storage_Error EndReadRefSection() ;
91 Storage_Error BeginWriteDataSection() ;
92 void WritePersistentObjectHeader(const Standard_Integer aRef,const Standard_Integer aType) ;
93 void BeginWritePersistentObjectData() ;
94 void BeginWriteObjectData() ;
95 void EndWriteObjectData() ;
96 void EndWritePersistentObjectData() ;
97 Storage_Error EndWriteDataSection() ;
98 Storage_Error BeginReadDataSection() ;
99 void ReadPersistentObjectHeader(Standard_Integer& aRef,Standard_Integer& aType) ;
100 void BeginReadPersistentObjectData() ;
101 void BeginReadObjectData() ;
102 void EndReadObjectData() ;
103 void EndReadPersistentObjectData() ;
104 Storage_Error EndReadDataSection() ;
105 void SkipObject() ;
106 Storage_BaseDriver& PutReference(const Standard_Integer aValue) ;
107 Storage_BaseDriver& PutCharacter(const Standard_Character aValue) ;
108 Storage_BaseDriver& operator <<(const Standard_Character aValue)
109{
110 return PutCharacter(aValue);
111}
112
113 Storage_BaseDriver& PutExtCharacter(const Standard_ExtCharacter aValue) ;
114 Storage_BaseDriver& operator <<(const Standard_ExtCharacter aValue)
115{
116 return PutExtCharacter(aValue);
117}
118
119 Storage_BaseDriver& PutInteger(const Standard_Integer aValue) ;
120 Storage_BaseDriver& operator <<(const Standard_Integer aValue)
121{
122 return PutInteger(aValue);
123}
124
125 Storage_BaseDriver& PutBoolean(const Standard_Boolean aValue) ;
126 Storage_BaseDriver& operator <<(const Standard_Boolean aValue)
127{
128 return PutBoolean(aValue);
129}
130
131 Storage_BaseDriver& PutReal(const Standard_Real aValue) ;
132 Storage_BaseDriver& operator <<(const Standard_Real aValue)
133{
134 return PutReal(aValue);
135}
136
137 Storage_BaseDriver& PutShortReal(const Standard_ShortReal aValue) ;
138 Storage_BaseDriver& operator <<(const Standard_ShortReal aValue)
139{
140 return PutShortReal(aValue);
141}
142
143 Storage_BaseDriver& GetReference(Standard_Integer& aValue) ;
144 Storage_BaseDriver& GetCharacter(Standard_Character& aValue) ;
145 Storage_BaseDriver& operator >>(Standard_Character& aValue)
146{
147 return GetCharacter(aValue);
148}
149
150 Storage_BaseDriver& GetExtCharacter(Standard_ExtCharacter& aValue) ;
151 Storage_BaseDriver& operator >>(Standard_ExtCharacter& aValue)
152{
153 return GetExtCharacter(aValue);
154}
155
156 Storage_BaseDriver& GetInteger(Standard_Integer& aValue) ;
157 Storage_BaseDriver& operator >>(Standard_Integer& aValue)
158{
159 return GetInteger(aValue);
160}
161
162 Storage_BaseDriver& GetBoolean(Standard_Boolean& aValue) ;
163 Storage_BaseDriver& operator >>(Standard_Boolean& aValue)
164{
165 return GetBoolean(aValue);
166}
167
168 Storage_BaseDriver& GetReal(Standard_Real& aValue) ;
169 Storage_BaseDriver& operator >>(Standard_Real& aValue)
170{
171 return GetReal(aValue);
172}
173
174 Storage_BaseDriver& GetShortReal(Standard_ShortReal& aValue) ;
175 Storage_BaseDriver& operator >>(Standard_ShortReal& aValue)
176{
177 return GetShortReal(aValue);
178}
179
180 Storage_Error Close() ;
181 void Destroy() ;
182~DDF_IOStream()
183{
184 Destroy();
185}
186
187
188
189
190
191
192protected:
193
194 // Methods PROTECTED
195 //
196 void ReadLine(TCollection_AsciiString& buffer) ;
197 void ReadWord(TCollection_AsciiString& buffer) ;
198 void ReadExtendedLine(TCollection_ExtendedString& buffer) ;
199 void WriteExtendedLine(const TCollection_ExtendedString& buffer) ;
200 void ReadChar(TCollection_AsciiString& buffer,const Standard_Integer rsize) ;
201 void ReadString(TCollection_AsciiString& buffer) ;
202 void FlushEndOfLine() ;
203 Storage_Error FindTag(const Standard_CString aTag) ;
204
205
206 // Fields PROTECTED
207 //
208
209
210private:
211
212 // Methods PRIVATE
213 //
487bf1ce 214static Standard_CString MagicNumber() ;
7fd59977 215
216
217 // Fields PRIVATE
218 //
219//FSD_FStream myStream;
220istream* myIStream;
221ostream* myOStream;
222
223
224};
225
57c28b61 226#ifdef _MSC_VER
7fd59977 227#pragma warning (default : 4275)
228#endif
229
230
231// other inline functions and methods (like "C++: function call" methods)
232//
233#endif