File indexing completed on 2026-05-26 08:18:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _Storage_BaseDriver_HeaderFile
0018 #define _Storage_BaseDriver_HeaderFile
0019
0020 #include <Storage_OpenMode.hxx>
0021 #include <Storage_Data.hxx>
0022 #include <Storage_Position.hxx>
0023 #include <TCollection_AsciiString.hxx>
0024 #include <TColStd_SequenceOfAsciiString.hxx>
0025 #include <TColStd_SequenceOfExtendedString.hxx>
0026
0027 class TCollection_ExtendedString;
0028
0029 DEFINE_STANDARD_HANDLE(Storage_BaseDriver, Standard_Transient)
0030
0031
0032
0033
0034
0035
0036 class Storage_BaseDriver : public Standard_Transient
0037 {
0038 public:
0039 DEFINE_STANDARD_RTTIEXT(Storage_BaseDriver, Standard_Transient)
0040
0041 public:
0042 Standard_EXPORT virtual ~Storage_BaseDriver();
0043
0044 TCollection_AsciiString Name() const { return myName; }
0045
0046 Storage_OpenMode OpenMode() const { return myOpenMode; }
0047
0048 Standard_EXPORT static TCollection_AsciiString ReadMagicNumber(Standard_IStream& theIStream);
0049
0050 public:
0051
0052
0053 Standard_EXPORT virtual Storage_Error Open(const TCollection_AsciiString& aName,
0054 const Storage_OpenMode aMode) = 0;
0055
0056
0057 Standard_EXPORT virtual Standard_Boolean IsEnd() = 0;
0058
0059
0060 Standard_EXPORT virtual Storage_Position Tell() = 0;
0061
0062 Standard_EXPORT virtual Storage_Error BeginWriteInfoSection() = 0;
0063
0064 Standard_EXPORT virtual void WriteInfo(const Standard_Integer nbObj,
0065 const TCollection_AsciiString& dbVersion,
0066 const TCollection_AsciiString& date,
0067 const TCollection_AsciiString& schemaName,
0068 const TCollection_AsciiString& schemaVersion,
0069 const TCollection_ExtendedString& appName,
0070 const TCollection_AsciiString& appVersion,
0071 const TCollection_ExtendedString& objectType,
0072 const TColStd_SequenceOfAsciiString& userInfo) = 0;
0073
0074 Standard_EXPORT virtual Storage_Error EndWriteInfoSection() = 0;
0075
0076 Standard_EXPORT virtual Storage_Error BeginReadInfoSection() = 0;
0077
0078 Standard_EXPORT virtual void ReadInfo(Standard_Integer& nbObj,
0079 TCollection_AsciiString& dbVersion,
0080 TCollection_AsciiString& date,
0081 TCollection_AsciiString& schemaName,
0082 TCollection_AsciiString& schemaVersion,
0083 TCollection_ExtendedString& appName,
0084 TCollection_AsciiString& appVersion,
0085 TCollection_ExtendedString& objectType,
0086 TColStd_SequenceOfAsciiString& userInfo) = 0;
0087
0088 Standard_EXPORT virtual void ReadCompleteInfo(Standard_IStream& theIStream,
0089 Handle(Storage_Data)& theData) = 0;
0090
0091 Standard_EXPORT virtual Storage_Error EndReadInfoSection() = 0;
0092
0093 Standard_EXPORT virtual Storage_Error BeginWriteCommentSection() = 0;
0094
0095 Standard_EXPORT virtual void WriteComment(
0096 const TColStd_SequenceOfExtendedString& userComments) = 0;
0097
0098 Standard_EXPORT virtual Storage_Error EndWriteCommentSection() = 0;
0099
0100 Standard_EXPORT virtual Storage_Error BeginReadCommentSection() = 0;
0101
0102 Standard_EXPORT virtual void ReadComment(TColStd_SequenceOfExtendedString& userComments) = 0;
0103
0104 Standard_EXPORT virtual Storage_Error EndReadCommentSection() = 0;
0105
0106 Standard_EXPORT virtual Storage_Error BeginWriteTypeSection() = 0;
0107
0108 Standard_EXPORT virtual void SetTypeSectionSize(const Standard_Integer aSize) = 0;
0109
0110 Standard_EXPORT virtual void WriteTypeInformations(const Standard_Integer typeNum,
0111 const TCollection_AsciiString& typeName) = 0;
0112
0113 Standard_EXPORT virtual Storage_Error EndWriteTypeSection() = 0;
0114
0115 Standard_EXPORT virtual Storage_Error BeginReadTypeSection() = 0;
0116
0117 Standard_EXPORT virtual Standard_Integer TypeSectionSize() = 0;
0118
0119 Standard_EXPORT virtual void ReadTypeInformations(Standard_Integer& typeNum,
0120 TCollection_AsciiString& typeName) = 0;
0121
0122 Standard_EXPORT virtual Storage_Error EndReadTypeSection() = 0;
0123
0124 Standard_EXPORT virtual Storage_Error BeginWriteRootSection() = 0;
0125
0126 Standard_EXPORT virtual void SetRootSectionSize(const Standard_Integer aSize) = 0;
0127
0128 Standard_EXPORT virtual void WriteRoot(const TCollection_AsciiString& rootName,
0129 const Standard_Integer aRef,
0130 const TCollection_AsciiString& aType) = 0;
0131
0132 Standard_EXPORT virtual Storage_Error EndWriteRootSection() = 0;
0133
0134 Standard_EXPORT virtual Storage_Error BeginReadRootSection() = 0;
0135
0136 Standard_EXPORT virtual Standard_Integer RootSectionSize() = 0;
0137
0138 Standard_EXPORT virtual void ReadRoot(TCollection_AsciiString& rootName,
0139 Standard_Integer& aRef,
0140 TCollection_AsciiString& aType) = 0;
0141
0142 Standard_EXPORT virtual Storage_Error EndReadRootSection() = 0;
0143
0144 Standard_EXPORT virtual Storage_Error BeginWriteRefSection() = 0;
0145
0146 Standard_EXPORT virtual void SetRefSectionSize(const Standard_Integer aSize) = 0;
0147
0148 Standard_EXPORT virtual void WriteReferenceType(const Standard_Integer reference,
0149 const Standard_Integer typeNum) = 0;
0150
0151 Standard_EXPORT virtual Storage_Error EndWriteRefSection() = 0;
0152
0153 Standard_EXPORT virtual Storage_Error BeginReadRefSection() = 0;
0154
0155 Standard_EXPORT virtual Standard_Integer RefSectionSize() = 0;
0156
0157 Standard_EXPORT virtual void ReadReferenceType(Standard_Integer& reference,
0158 Standard_Integer& typeNum) = 0;
0159
0160 Standard_EXPORT virtual Storage_Error EndReadRefSection() = 0;
0161
0162 Standard_EXPORT virtual Storage_Error BeginWriteDataSection() = 0;
0163
0164 Standard_EXPORT virtual void WritePersistentObjectHeader(const Standard_Integer aRef,
0165 const Standard_Integer aType) = 0;
0166
0167 Standard_EXPORT virtual void BeginWritePersistentObjectData() = 0;
0168
0169 Standard_EXPORT virtual void BeginWriteObjectData() = 0;
0170
0171 Standard_EXPORT virtual void EndWriteObjectData() = 0;
0172
0173 Standard_EXPORT virtual void EndWritePersistentObjectData() = 0;
0174
0175 Standard_EXPORT virtual Storage_Error EndWriteDataSection() = 0;
0176
0177 Standard_EXPORT virtual Storage_Error BeginReadDataSection() = 0;
0178
0179 Standard_EXPORT virtual void ReadPersistentObjectHeader(Standard_Integer& aRef,
0180 Standard_Integer& aType) = 0;
0181
0182 Standard_EXPORT virtual void BeginReadPersistentObjectData() = 0;
0183
0184 Standard_EXPORT virtual void BeginReadObjectData() = 0;
0185
0186 Standard_EXPORT virtual void EndReadObjectData() = 0;
0187
0188 Standard_EXPORT virtual void EndReadPersistentObjectData() = 0;
0189
0190 Standard_EXPORT virtual Storage_Error EndReadDataSection() = 0;
0191
0192 Standard_EXPORT virtual void SkipObject() = 0;
0193
0194 Standard_EXPORT virtual Storage_Error Close() = 0;
0195
0196 public:
0197
0198
0199 Standard_EXPORT virtual Storage_BaseDriver& PutReference(const Standard_Integer aValue) = 0;
0200
0201 Standard_EXPORT virtual Storage_BaseDriver& PutCharacter(const Standard_Character aValue) = 0;
0202
0203 Storage_BaseDriver& operator<<(const Standard_Character aValue) { return PutCharacter(aValue); }
0204
0205 Standard_EXPORT virtual Storage_BaseDriver& PutExtCharacter(
0206 const Standard_ExtCharacter aValue) = 0;
0207
0208 Storage_BaseDriver& operator<<(const Standard_ExtCharacter aValue)
0209 {
0210 return PutExtCharacter(aValue);
0211 }
0212
0213 Standard_EXPORT virtual Storage_BaseDriver& PutInteger(const Standard_Integer aValue) = 0;
0214
0215 Storage_BaseDriver& operator<<(const Standard_Integer aValue) { return PutInteger(aValue); }
0216
0217 Standard_EXPORT virtual Storage_BaseDriver& PutBoolean(const Standard_Boolean aValue) = 0;
0218
0219 Storage_BaseDriver& operator<<(const Standard_Boolean aValue) { return PutBoolean(aValue); }
0220
0221 Standard_EXPORT virtual Storage_BaseDriver& PutReal(const Standard_Real aValue) = 0;
0222
0223 Storage_BaseDriver& operator<<(const Standard_Real aValue) { return PutReal(aValue); }
0224
0225 Standard_EXPORT virtual Storage_BaseDriver& PutShortReal(const Standard_ShortReal aValue) = 0;
0226
0227 Storage_BaseDriver& operator<<(const Standard_ShortReal aValue) { return PutShortReal(aValue); }
0228
0229 public:
0230
0231
0232 Standard_EXPORT virtual Storage_BaseDriver& GetReference(Standard_Integer& aValue) = 0;
0233
0234 Standard_EXPORT virtual Storage_BaseDriver& GetCharacter(Standard_Character& aValue) = 0;
0235
0236 Storage_BaseDriver& operator>>(Standard_Character& aValue) { return GetCharacter(aValue); }
0237
0238 Standard_EXPORT virtual Storage_BaseDriver& GetExtCharacter(Standard_ExtCharacter& aValue) = 0;
0239
0240 Storage_BaseDriver& operator>>(Standard_ExtCharacter& aValue) { return GetExtCharacter(aValue); }
0241
0242 Standard_EXPORT virtual Storage_BaseDriver& GetInteger(Standard_Integer& aValue) = 0;
0243
0244 Storage_BaseDriver& operator>>(Standard_Integer& aValue) { return GetInteger(aValue); }
0245
0246 Standard_EXPORT virtual Storage_BaseDriver& GetBoolean(Standard_Boolean& aValue) = 0;
0247
0248 Storage_BaseDriver& operator>>(Standard_Boolean& aValue) { return GetBoolean(aValue); }
0249
0250 Standard_EXPORT virtual Storage_BaseDriver& GetReal(Standard_Real& aValue) = 0;
0251
0252 Storage_BaseDriver& operator>>(Standard_Real& aValue) { return GetReal(aValue); }
0253
0254 Standard_EXPORT virtual Storage_BaseDriver& GetShortReal(Standard_ShortReal& aValue) = 0;
0255
0256 Storage_BaseDriver& operator>>(Standard_ShortReal& aValue) { return GetShortReal(aValue); }
0257
0258 protected:
0259 Standard_EXPORT Storage_BaseDriver();
0260
0261 void SetName(const TCollection_AsciiString& aName) { myName = aName; }
0262
0263 void SetOpenMode(const Storage_OpenMode aMode) { myOpenMode = aMode; }
0264
0265 private:
0266 Storage_OpenMode myOpenMode;
0267 TCollection_AsciiString myName;
0268 };
0269
0270 #endif