0031682: Visualization - Prs3d_ShadingAspect::SetTransparency() has no effect with...
[occt.git] / src / FSD / FSD_File.hxx
CommitLineData
42cf5bc1 1// Created on: 1996-11-29
2// Created by: Christophe LEYNADIER
3// Copyright (c) 1996-1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
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
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.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _FSD_File_HeaderFile
18#define _FSD_File_HeaderFile
19
42cf5bc1 20#include <FSD_FStream.hxx>
21#include <Storage_BaseDriver.hxx>
39c8dc70 22
42cf5bc1 23class Storage_StreamTypeMismatchError;
24class Storage_StreamFormatError;
25class Storage_StreamWriteError;
26class Storage_StreamExtCharParityError;
27class TCollection_AsciiString;
28class TCollection_ExtendedString;
29class Storage_BaseDriver;
30
39c8dc70 31DEFINE_STANDARD_HANDLE(FSD_File,Storage_BaseDriver)
42cf5bc1 32
33//! A general driver which defines as a file, the
34//! physical container for data to be stored or retrieved.
35class FSD_File : public Storage_BaseDriver
36{
37public:
39c8dc70 38 DEFINE_STANDARD_RTTIEXT(FSD_File,Storage_BaseDriver)
42cf5bc1 39
39c8dc70 40public:
42cf5bc1 41
42 //! Constructs a driver defining as a file, the physical
43 //! container for data to be stored or retrieved.
44 //! Use the function Open to give the name of the driven file.
45 Standard_EXPORT FSD_File();
46
47
48 //! Assigns as aName the name of the file to be
49 //! driven by this driver. aMode precises if the file is
50 //! opened in read or write mode.
51 //! The function returns Storage_VSOk if the file
52 //! is opened correctly, or any other value of the
53 //! Storage_Error enumeration which specifies the problem encountered.
39c8dc70 54 Standard_EXPORT virtual Storage_Error Open (const TCollection_AsciiString& aName, const Storage_OpenMode aMode) Standard_OVERRIDE;
42cf5bc1 55
39c8dc70 56 Standard_EXPORT virtual Standard_Boolean IsEnd() Standard_OVERRIDE;
42cf5bc1 57
58 //! return position in the file. Return -1 upon error.
39c8dc70 59 Standard_EXPORT virtual Storage_Position Tell() Standard_OVERRIDE;
42cf5bc1 60
61 Standard_EXPORT static Storage_Error IsGoodFileType (const TCollection_AsciiString& aName);
62
39c8dc70 63 Standard_EXPORT virtual Storage_Error BeginWriteInfoSection() Standard_OVERRIDE;
64
65 Standard_EXPORT virtual void WriteInfo (const Standard_Integer nbObj,
66 const TCollection_AsciiString& dbVersion,
67 const TCollection_AsciiString& date,
68 const TCollection_AsciiString& schemaName,
69 const TCollection_AsciiString& schemaVersion,
70 const TCollection_ExtendedString& appName,
71 const TCollection_AsciiString& appVersion,
72 const TCollection_ExtendedString& objectType,
73 const TColStd_SequenceOfAsciiString& userInfo) Standard_OVERRIDE;
74
75 Standard_EXPORT virtual Storage_Error EndWriteInfoSection() Standard_OVERRIDE;
76
77 Standard_EXPORT virtual Storage_Error BeginReadInfoSection() Standard_OVERRIDE;
78
79 Standard_EXPORT virtual void ReadInfo (Standard_Integer& nbObj,
80 TCollection_AsciiString& dbVersion,
81 TCollection_AsciiString& date,
82 TCollection_AsciiString& schemaName,
83 TCollection_AsciiString& schemaVersion,
84 TCollection_ExtendedString& appName,
85 TCollection_AsciiString& appVersion,
86 TCollection_ExtendedString& objectType,
87 TColStd_SequenceOfAsciiString& userInfo) Standard_OVERRIDE;
88
89 Standard_EXPORT virtual void ReadCompleteInfo (Standard_IStream& theIStream, Handle(Storage_Data)& theData) Standard_OVERRIDE;
42cf5bc1 90
39c8dc70 91 Standard_EXPORT virtual Storage_Error EndReadInfoSection() Standard_OVERRIDE;
42cf5bc1 92
39c8dc70 93 Standard_EXPORT virtual Storage_Error BeginWriteCommentSection() Standard_OVERRIDE;
42cf5bc1 94
39c8dc70 95 Standard_EXPORT virtual void WriteComment (const TColStd_SequenceOfExtendedString& userComments) Standard_OVERRIDE;
42cf5bc1 96
39c8dc70 97 Standard_EXPORT virtual Storage_Error EndWriteCommentSection() Standard_OVERRIDE;
42cf5bc1 98
39c8dc70 99 Standard_EXPORT virtual Storage_Error BeginReadCommentSection() Standard_OVERRIDE;
42cf5bc1 100
39c8dc70 101 Standard_EXPORT virtual void ReadComment (TColStd_SequenceOfExtendedString& userComments) Standard_OVERRIDE;
42cf5bc1 102
39c8dc70 103 Standard_EXPORT virtual Storage_Error EndReadCommentSection() Standard_OVERRIDE;
42cf5bc1 104
39c8dc70 105 Standard_EXPORT virtual Storage_Error BeginWriteTypeSection() Standard_OVERRIDE;
42cf5bc1 106
39c8dc70 107 Standard_EXPORT virtual void SetTypeSectionSize (const Standard_Integer aSize) Standard_OVERRIDE;
42cf5bc1 108
39c8dc70 109 Standard_EXPORT virtual void WriteTypeInformations (const Standard_Integer typeNum,
110 const TCollection_AsciiString& typeName) Standard_OVERRIDE;
42cf5bc1 111
39c8dc70 112 Standard_EXPORT virtual Storage_Error EndWriteTypeSection() Standard_OVERRIDE;
42cf5bc1 113
39c8dc70 114 Standard_EXPORT virtual Storage_Error BeginReadTypeSection() Standard_OVERRIDE;
42cf5bc1 115
39c8dc70 116 Standard_EXPORT virtual Standard_Integer TypeSectionSize() Standard_OVERRIDE;
42cf5bc1 117
39c8dc70 118 Standard_EXPORT virtual void ReadTypeInformations (Standard_Integer& typeNum, TCollection_AsciiString& typeName) Standard_OVERRIDE;
42cf5bc1 119
39c8dc70 120 Standard_EXPORT virtual Storage_Error EndReadTypeSection() Standard_OVERRIDE;
42cf5bc1 121
39c8dc70 122 Standard_EXPORT virtual Storage_Error BeginWriteRootSection() Standard_OVERRIDE;
42cf5bc1 123
39c8dc70 124 Standard_EXPORT virtual void SetRootSectionSize (const Standard_Integer aSize) Standard_OVERRIDE;
42cf5bc1 125
39c8dc70 126 Standard_EXPORT virtual void WriteRoot (const TCollection_AsciiString& rootName,
127 const Standard_Integer aRef,
128 const TCollection_AsciiString& aType) Standard_OVERRIDE;
42cf5bc1 129
39c8dc70 130 Standard_EXPORT virtual Storage_Error EndWriteRootSection() Standard_OVERRIDE;
42cf5bc1 131
39c8dc70 132 Standard_EXPORT virtual Storage_Error BeginReadRootSection() Standard_OVERRIDE;
42cf5bc1 133
39c8dc70 134 Standard_EXPORT virtual Standard_Integer RootSectionSize() Standard_OVERRIDE;
42cf5bc1 135
39c8dc70 136 Standard_EXPORT virtual void ReadRoot (TCollection_AsciiString& rootName,
137 Standard_Integer& aRef,
138 TCollection_AsciiString& aType) Standard_OVERRIDE;
42cf5bc1 139
39c8dc70 140 Standard_EXPORT virtual Storage_Error EndReadRootSection() Standard_OVERRIDE;
42cf5bc1 141
39c8dc70 142 Standard_EXPORT virtual Storage_Error BeginWriteRefSection() Standard_OVERRIDE;
42cf5bc1 143
39c8dc70 144 Standard_EXPORT virtual void SetRefSectionSize (const Standard_Integer aSize) Standard_OVERRIDE;
42cf5bc1 145
39c8dc70 146 Standard_EXPORT virtual void WriteReferenceType (const Standard_Integer reference, const Standard_Integer typeNum) Standard_OVERRIDE;
42cf5bc1 147
39c8dc70 148 Standard_EXPORT virtual Storage_Error EndWriteRefSection() Standard_OVERRIDE;
42cf5bc1 149
39c8dc70 150 Standard_EXPORT virtual Storage_Error BeginReadRefSection() Standard_OVERRIDE;
42cf5bc1 151
39c8dc70 152 Standard_EXPORT virtual Standard_Integer RefSectionSize() Standard_OVERRIDE;
42cf5bc1 153
39c8dc70 154 Standard_EXPORT virtual void ReadReferenceType (Standard_Integer& reference, Standard_Integer& typeNum) Standard_OVERRIDE;
42cf5bc1 155
39c8dc70 156 Standard_EXPORT virtual Storage_Error EndReadRefSection() Standard_OVERRIDE;
42cf5bc1 157
39c8dc70 158 Standard_EXPORT virtual Storage_Error BeginWriteDataSection() Standard_OVERRIDE;
42cf5bc1 159
39c8dc70 160 Standard_EXPORT virtual void WritePersistentObjectHeader (const Standard_Integer aRef, const Standard_Integer aType) Standard_OVERRIDE;
42cf5bc1 161
39c8dc70 162 Standard_EXPORT virtual void BeginWritePersistentObjectData() Standard_OVERRIDE;
42cf5bc1 163
39c8dc70 164 Standard_EXPORT virtual void BeginWriteObjectData() Standard_OVERRIDE;
42cf5bc1 165
39c8dc70 166 Standard_EXPORT virtual void EndWriteObjectData() Standard_OVERRIDE;
42cf5bc1 167
39c8dc70 168 Standard_EXPORT virtual void EndWritePersistentObjectData() Standard_OVERRIDE;
42cf5bc1 169
39c8dc70 170 Standard_EXPORT virtual Storage_Error EndWriteDataSection() Standard_OVERRIDE;
42cf5bc1 171
39c8dc70 172 Standard_EXPORT virtual Storage_Error BeginReadDataSection() Standard_OVERRIDE;
42cf5bc1 173
39c8dc70 174 Standard_EXPORT virtual void ReadPersistentObjectHeader (Standard_Integer& aRef, Standard_Integer& aType) Standard_OVERRIDE;
42cf5bc1 175
39c8dc70 176 Standard_EXPORT virtual void BeginReadPersistentObjectData() Standard_OVERRIDE;
42cf5bc1 177
39c8dc70 178 Standard_EXPORT virtual void BeginReadObjectData() Standard_OVERRIDE;
42cf5bc1 179
39c8dc70 180 Standard_EXPORT virtual void EndReadObjectData() Standard_OVERRIDE;
42cf5bc1 181
39c8dc70 182 Standard_EXPORT virtual void EndReadPersistentObjectData() Standard_OVERRIDE;
42cf5bc1 183
39c8dc70 184 Standard_EXPORT virtual Storage_Error EndReadDataSection() Standard_OVERRIDE;
42cf5bc1 185
39c8dc70 186 Standard_EXPORT virtual void SkipObject() Standard_OVERRIDE;
42cf5bc1 187
39c8dc70 188 Standard_EXPORT virtual Storage_BaseDriver& PutReference (const Standard_Integer aValue) Standard_OVERRIDE;
42cf5bc1 189
39c8dc70 190 Standard_EXPORT virtual Storage_BaseDriver& PutCharacter (const Standard_Character aValue) Standard_OVERRIDE;
191
192 Standard_EXPORT virtual Storage_BaseDriver& PutExtCharacter(const Standard_ExtCharacter aValue) Standard_OVERRIDE;
42cf5bc1 193
39c8dc70 194 Standard_EXPORT virtual Storage_BaseDriver& PutInteger (const Standard_Integer aValue) Standard_OVERRIDE;
42cf5bc1 195
39c8dc70 196 Standard_EXPORT virtual Storage_BaseDriver& PutBoolean (const Standard_Boolean aValue) Standard_OVERRIDE;
42cf5bc1 197
39c8dc70 198 Standard_EXPORT virtual Storage_BaseDriver& PutReal (const Standard_Real aValue) Standard_OVERRIDE;
42cf5bc1 199
39c8dc70 200 Standard_EXPORT virtual Storage_BaseDriver& PutShortReal (const Standard_ShortReal aValue) Standard_OVERRIDE;
42cf5bc1 201
39c8dc70 202 Standard_EXPORT virtual Storage_BaseDriver& GetReference (Standard_Integer& aValue) Standard_OVERRIDE;
203
204 Standard_EXPORT virtual Storage_BaseDriver& GetCharacter (Standard_Character& aValue) Standard_OVERRIDE;
205
206 Standard_EXPORT virtual Storage_BaseDriver& GetExtCharacter (Standard_ExtCharacter& aValue) Standard_OVERRIDE;
207
208 Standard_EXPORT virtual Storage_BaseDriver& GetInteger (Standard_Integer& aValue) Standard_OVERRIDE;
209
210 Standard_EXPORT virtual Storage_BaseDriver& GetBoolean (Standard_Boolean& aValue) Standard_OVERRIDE;
211
212 Standard_EXPORT virtual Storage_BaseDriver& GetReal (Standard_Real& aValue) Standard_OVERRIDE;
213
214 Standard_EXPORT virtual Storage_BaseDriver& GetShortReal (Standard_ShortReal& aValue) Standard_OVERRIDE;
42cf5bc1 215
216 //! Closes the file driven by this driver. This file was
217 //! opened by the last call to the function Open.
218 //! The function returns Storage_VSOk if the
219 //! closure is correctly done, or any other value of
220 //! the Storage_Error enumeration which specifies the problem encountered.
39c8dc70 221 Standard_EXPORT virtual Storage_Error Close() Standard_OVERRIDE;
42cf5bc1 222
223 Standard_EXPORT void Destroy();
224~FSD_File()
225{
226 Destroy();
227}
228
4ff92abe 229 Standard_EXPORT static Standard_CString MagicNumber();
42cf5bc1 230
39c8dc70 231protected:
42cf5bc1 232
233 //! read from the current position to the end of line.
46216226 234 Standard_EXPORT virtual void ReadLine (TCollection_AsciiString& buffer);
42cf5bc1 235
236 //! read from the current position to the next white space or end of line.
46216226 237 Standard_EXPORT virtual void ReadWord (TCollection_AsciiString& buffer);
42cf5bc1 238
239 //! read extended chars (unicode) from the current position to the end of line.
46216226 240 Standard_EXPORT virtual void ReadExtendedLine (TCollection_ExtendedString& buffer);
42cf5bc1 241
242 //! write from the current position to the end of line.
46216226 243 Standard_EXPORT virtual void WriteExtendedLine (const TCollection_ExtendedString& buffer);
42cf5bc1 244
245 //! read <rsize> character from the current position.
46216226 246 Standard_EXPORT virtual void ReadChar (TCollection_AsciiString& buffer, const Standard_Size rsize);
42cf5bc1 247
248 //! read from the first none space character position to the end of line.
46216226 249 Standard_EXPORT virtual void ReadString (TCollection_AsciiString& buffer);
42cf5bc1 250
46216226 251 Standard_EXPORT virtual void FlushEndOfLine();
42cf5bc1 252
46216226 253 Standard_EXPORT virtual Storage_Error FindTag (const Standard_CString aTag);
42cf5bc1 254
39c8dc70 255protected:
42cf5bc1 256 FSD_FStream myStream;
42cf5bc1 257};
258
42cf5bc1 259#endif // _FSD_File_HeaderFile