| 1 | // File: DDF_IOStream.hxx |
| 2 | // -------------- |
| 3 | // Author: DAUTRY Philippe |
| 4 | // <fid@fox.paris1.matra-dtv.fr> |
| 5 | // Copyright: Matra Datavision 1997 |
| 6 | |
| 7 | // Version: 0.0 |
| 8 | // History: Version Date Purpose |
| 9 | // 0.0 Aug 22 1997 Creation |
| 10 | |
| 11 | // This file has been written using FSD_File.hxx as template. |
| 12 | // This is a specific adaptation for Draw use (save & restore commands). |
| 13 | // It is not sure at all this code is portable on any other plateform than |
| 14 | // SUN OS. Don't use it anywhere else. |
| 15 | // Thanks for comprehension. (22 august 97) |
| 16 | |
| 17 | |
| 18 | #ifndef DDF_IOStream_HeaderFile |
| 19 | #define DDF_IOStream_HeaderFile |
| 20 | |
| 21 | // File generated by CPPExt (Value) |
| 22 | // Copyright (C) 1991,1995 by |
| 23 | // |
| 24 | // MATRA DATAVISION, FRANCE |
| 25 | // |
| 26 | // This software is furnished in accordance with the terms and conditions |
| 27 | // of the contract and with the inclusion of the above copyright notice. |
| 28 | // This software or any other copy thereof may not be provided or otherwise |
| 29 | // be made available to any other person. No title to an ownership of the |
| 30 | // software is hereby transferred. |
| 31 | // |
| 32 | // At the termination of the contract, the software and all copies of this |
| 33 | // software must be deleted. |
| 34 | |
| 35 | #include <stdio.h> |
| 36 | |
| 37 | #ifndef _Storage_BaseDriver_HeaderFile |
| 38 | #include <Storage_BaseDriver.hxx> |
| 39 | #endif |
| 40 | #ifndef _Storage_Error_HeaderFile |
| 41 | #include <Storage_Error.hxx> |
| 42 | #endif |
| 43 | #ifndef _Storage_OpenMode_HeaderFile |
| 44 | #include <Storage_OpenMode.hxx> |
| 45 | #endif |
| 46 | #ifndef _Standard_Boolean_HeaderFile |
| 47 | #include <Standard_Boolean.hxx> |
| 48 | #endif |
| 49 | #ifndef _Standard_Integer_HeaderFile |
| 50 | #include <Standard_Integer.hxx> |
| 51 | #endif |
| 52 | #ifndef _Standard_Character_HeaderFile |
| 53 | #include <Standard_Character.hxx> |
| 54 | #endif |
| 55 | #ifndef _Standard_ExtCharacter_HeaderFile |
| 56 | #include <Standard_ExtCharacter.hxx> |
| 57 | #endif |
| 58 | #ifndef _Standard_Real_HeaderFile |
| 59 | #include <Standard_Real.hxx> |
| 60 | #endif |
| 61 | #ifndef _Standard_ShortReal_HeaderFile |
| 62 | #include <Standard_ShortReal.hxx> |
| 63 | #endif |
| 64 | #ifndef _Standard_CString_HeaderFile |
| 65 | #include <Standard_CString.hxx> |
| 66 | #endif |
| 67 | #include <Storage_Position.hxx> |
| 68 | |
| 69 | class Storage_StreamTypeMismatchError; |
| 70 | class Storage_StreamFormatError; |
| 71 | class Storage_StreamWriteError; |
| 72 | class Storage_StreamExtCharParityError; |
| 73 | |
| 74 | class TColStd_SequenceOfExtendedString; |
| 75 | |
| 76 | #ifndef Standard_EXPORT |
| 77 | #ifdef WNT |
| 78 | #define Standard_EXPORT __declspec(dllexport) |
| 79 | #else |
| 80 | #define Standard_EXPORT |
| 81 | #endif |
| 82 | #endif |
| 83 | #ifdef WNT |
| 84 | #pragma warning (disable : 4275) |
| 85 | #endif |
| 86 | |
| 87 | class Standard_EXPORT DDF_IOStream : public Storage_BaseDriver { |
| 88 | |
| 89 | public: |
| 90 | |
| 91 | // Methods PUBLIC |
| 92 | // |
| 93 | DDF_IOStream(); |
| 94 | Storage_Error Open(const TCollection_AsciiString& aName,const Storage_OpenMode aMode) ; |
| 95 | Storage_Error Open(istream* anIStream) ; |
| 96 | Storage_Error Open(ostream* anOStream) ; |
| 97 | Standard_Boolean IsEnd() ; |
| 98 | Storage_Position Tell() { return -1; } |
| 99 | static Storage_Error IsGoodFileType(istream* anIStream) ; |
| 100 | Storage_Error BeginWriteInfoSection() ; |
| 101 | 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) ; |
| 102 | Storage_Error EndWriteInfoSection() ; |
| 103 | Storage_Error BeginReadInfoSection() ; |
| 104 | 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) ; |
| 105 | Storage_Error EndReadInfoSection() ; |
| 106 | Storage_Error BeginWriteCommentSection() ; |
| 107 | void WriteComment(const TColStd_SequenceOfExtendedString& userComments) ; |
| 108 | Storage_Error EndWriteCommentSection() ; |
| 109 | Storage_Error BeginReadCommentSection() ; |
| 110 | void ReadComment(TColStd_SequenceOfExtendedString& userComments) ; |
| 111 | Storage_Error EndReadCommentSection() ; |
| 112 | Storage_Error BeginWriteTypeSection() ; |
| 113 | void SetTypeSectionSize(const Standard_Integer aSize) ; |
| 114 | void WriteTypeInformations(const Standard_Integer typeNum,const TCollection_AsciiString& typeName) ; |
| 115 | Storage_Error EndWriteTypeSection() ; |
| 116 | Storage_Error BeginReadTypeSection() ; |
| 117 | Standard_Integer TypeSectionSize() ; |
| 118 | void ReadTypeInformations(Standard_Integer& typeNum,TCollection_AsciiString& typeName) ; |
| 119 | Storage_Error EndReadTypeSection() ; |
| 120 | Storage_Error BeginWriteRootSection() ; |
| 121 | void SetRootSectionSize(const Standard_Integer aSize) ; |
| 122 | void WriteRoot(const TCollection_AsciiString& rootName,const Standard_Integer aRef,const TCollection_AsciiString& aType) ; |
| 123 | Storage_Error EndWriteRootSection() ; |
| 124 | Storage_Error BeginReadRootSection() ; |
| 125 | Standard_Integer RootSectionSize() ; |
| 126 | void ReadRoot(TCollection_AsciiString& rootName,Standard_Integer& aRef,TCollection_AsciiString& aType) ; |
| 127 | Storage_Error EndReadRootSection() ; |
| 128 | Storage_Error BeginWriteRefSection() ; |
| 129 | void SetRefSectionSize(const Standard_Integer aSize) ; |
| 130 | void WriteReferenceType(const Standard_Integer reference,const Standard_Integer typeNum) ; |
| 131 | Storage_Error EndWriteRefSection() ; |
| 132 | Storage_Error BeginReadRefSection() ; |
| 133 | Standard_Integer RefSectionSize() ; |
| 134 | void ReadReferenceType(Standard_Integer& reference,Standard_Integer& typeNum) ; |
| 135 | Storage_Error EndReadRefSection() ; |
| 136 | Storage_Error BeginWriteDataSection() ; |
| 137 | void WritePersistentObjectHeader(const Standard_Integer aRef,const Standard_Integer aType) ; |
| 138 | void BeginWritePersistentObjectData() ; |
| 139 | void BeginWriteObjectData() ; |
| 140 | void EndWriteObjectData() ; |
| 141 | void EndWritePersistentObjectData() ; |
| 142 | Storage_Error EndWriteDataSection() ; |
| 143 | Storage_Error BeginReadDataSection() ; |
| 144 | void ReadPersistentObjectHeader(Standard_Integer& aRef,Standard_Integer& aType) ; |
| 145 | void BeginReadPersistentObjectData() ; |
| 146 | void BeginReadObjectData() ; |
| 147 | void EndReadObjectData() ; |
| 148 | void EndReadPersistentObjectData() ; |
| 149 | Storage_Error EndReadDataSection() ; |
| 150 | void SkipObject() ; |
| 151 | Storage_BaseDriver& PutReference(const Standard_Integer aValue) ; |
| 152 | Storage_BaseDriver& PutCharacter(const Standard_Character aValue) ; |
| 153 | Storage_BaseDriver& operator <<(const Standard_Character aValue) |
| 154 | { |
| 155 | return PutCharacter(aValue); |
| 156 | } |
| 157 | |
| 158 | Storage_BaseDriver& PutExtCharacter(const Standard_ExtCharacter aValue) ; |
| 159 | Storage_BaseDriver& operator <<(const Standard_ExtCharacter aValue) |
| 160 | { |
| 161 | return PutExtCharacter(aValue); |
| 162 | } |
| 163 | |
| 164 | Storage_BaseDriver& PutInteger(const Standard_Integer aValue) ; |
| 165 | Storage_BaseDriver& operator <<(const Standard_Integer aValue) |
| 166 | { |
| 167 | return PutInteger(aValue); |
| 168 | } |
| 169 | |
| 170 | Storage_BaseDriver& PutBoolean(const Standard_Boolean aValue) ; |
| 171 | Storage_BaseDriver& operator <<(const Standard_Boolean aValue) |
| 172 | { |
| 173 | return PutBoolean(aValue); |
| 174 | } |
| 175 | |
| 176 | Storage_BaseDriver& PutReal(const Standard_Real aValue) ; |
| 177 | Storage_BaseDriver& operator <<(const Standard_Real aValue) |
| 178 | { |
| 179 | return PutReal(aValue); |
| 180 | } |
| 181 | |
| 182 | Storage_BaseDriver& PutShortReal(const Standard_ShortReal aValue) ; |
| 183 | Storage_BaseDriver& operator <<(const Standard_ShortReal aValue) |
| 184 | { |
| 185 | return PutShortReal(aValue); |
| 186 | } |
| 187 | |
| 188 | Storage_BaseDriver& GetReference(Standard_Integer& aValue) ; |
| 189 | Storage_BaseDriver& GetCharacter(Standard_Character& aValue) ; |
| 190 | Storage_BaseDriver& operator >>(Standard_Character& aValue) |
| 191 | { |
| 192 | return GetCharacter(aValue); |
| 193 | } |
| 194 | |
| 195 | Storage_BaseDriver& GetExtCharacter(Standard_ExtCharacter& aValue) ; |
| 196 | Storage_BaseDriver& operator >>(Standard_ExtCharacter& aValue) |
| 197 | { |
| 198 | return GetExtCharacter(aValue); |
| 199 | } |
| 200 | |
| 201 | Storage_BaseDriver& GetInteger(Standard_Integer& aValue) ; |
| 202 | Storage_BaseDriver& operator >>(Standard_Integer& aValue) |
| 203 | { |
| 204 | return GetInteger(aValue); |
| 205 | } |
| 206 | |
| 207 | Storage_BaseDriver& GetBoolean(Standard_Boolean& aValue) ; |
| 208 | Storage_BaseDriver& operator >>(Standard_Boolean& aValue) |
| 209 | { |
| 210 | return GetBoolean(aValue); |
| 211 | } |
| 212 | |
| 213 | Storage_BaseDriver& GetReal(Standard_Real& aValue) ; |
| 214 | Storage_BaseDriver& operator >>(Standard_Real& aValue) |
| 215 | { |
| 216 | return GetReal(aValue); |
| 217 | } |
| 218 | |
| 219 | Storage_BaseDriver& GetShortReal(Standard_ShortReal& aValue) ; |
| 220 | Storage_BaseDriver& operator >>(Standard_ShortReal& aValue) |
| 221 | { |
| 222 | return GetShortReal(aValue); |
| 223 | } |
| 224 | |
| 225 | Storage_Error Close() ; |
| 226 | void Destroy() ; |
| 227 | ~DDF_IOStream() |
| 228 | { |
| 229 | Destroy(); |
| 230 | } |
| 231 | |
| 232 | |
| 233 | |
| 234 | |
| 235 | |
| 236 | |
| 237 | protected: |
| 238 | |
| 239 | // Methods PROTECTED |
| 240 | // |
| 241 | void ReadLine(TCollection_AsciiString& buffer) ; |
| 242 | void ReadWord(TCollection_AsciiString& buffer) ; |
| 243 | void ReadExtendedLine(TCollection_ExtendedString& buffer) ; |
| 244 | void WriteExtendedLine(const TCollection_ExtendedString& buffer) ; |
| 245 | void ReadChar(TCollection_AsciiString& buffer,const Standard_Integer rsize) ; |
| 246 | void ReadString(TCollection_AsciiString& buffer) ; |
| 247 | void FlushEndOfLine() ; |
| 248 | Storage_Error FindTag(const Standard_CString aTag) ; |
| 249 | |
| 250 | |
| 251 | // Fields PROTECTED |
| 252 | // |
| 253 | |
| 254 | |
| 255 | private: |
| 256 | |
| 257 | // Methods PRIVATE |
| 258 | // |
| 259 | static const Standard_CString MagicNumber() ; |
| 260 | |
| 261 | |
| 262 | // Fields PRIVATE |
| 263 | // |
| 264 | //FSD_FStream myStream; |
| 265 | istream* myIStream; |
| 266 | ostream* myOStream; |
| 267 | |
| 268 | |
| 269 | }; |
| 270 | |
| 271 | #ifdef WNT |
| 272 | #pragma warning (default : 4275) |
| 273 | #endif |
| 274 | |
| 275 | |
| 276 | // other inline functions and methods (like "C++: function call" methods) |
| 277 | // |
| 278 | #endif |