File indexing completed on 2026-09-18 09:21:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _PCDM_ReadWriter_HeaderFile
0018 #define _PCDM_ReadWriter_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022
0023 #include <Standard_Transient.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <PCDM_Reference.hxx>
0026 #include <NCollection_Sequence.hxx>
0027 #include <TCollection_ExtendedString.hxx>
0028 #include <Storage_OpenMode.hxx>
0029 class TCollection_AsciiString;
0030 class Storage_Data;
0031 class CDM_Document;
0032 class TCollection_ExtendedString;
0033 class Message_Messenger;
0034 class Storage_BaseDriver;
0035
0036 class PCDM_ReadWriter : public Standard_Transient
0037 {
0038
0039 public:
0040
0041 Standard_EXPORT virtual TCollection_AsciiString Version() const = 0;
0042
0043 Standard_EXPORT virtual void WriteReferenceCounter(
0044 const occ::handle<Storage_Data>& aData,
0045 const occ::handle<CDM_Document>& aDocument) const = 0;
0046
0047 Standard_EXPORT virtual void WriteReferences(
0048 const occ::handle<Storage_Data>& aData,
0049 const occ::handle<CDM_Document>& aDocument,
0050 const TCollection_ExtendedString& theReferencerFileName) const = 0;
0051
0052 Standard_EXPORT virtual void WriteExtensions(
0053 const occ::handle<Storage_Data>& aData,
0054 const occ::handle<CDM_Document>& aDocument) const = 0;
0055
0056 Standard_EXPORT virtual void WriteVersion(const occ::handle<Storage_Data>& aData,
0057 const occ::handle<CDM_Document>& aDocument) const = 0;
0058
0059 Standard_EXPORT virtual int ReadReferenceCounter(
0060 const TCollection_ExtendedString& theFileName,
0061 const occ::handle<Message_Messenger>& theMsgDriver) const = 0;
0062
0063 Standard_EXPORT virtual void ReadReferences(
0064 const TCollection_ExtendedString& aFileName,
0065 NCollection_Sequence<PCDM_Reference>& theReferences,
0066 const occ::handle<Message_Messenger>& theMsgDriver) const = 0;
0067
0068 Standard_EXPORT virtual void ReadExtensions(
0069 const TCollection_ExtendedString& aFileName,
0070 NCollection_Sequence<TCollection_ExtendedString>& theExtensions,
0071 const occ::handle<Message_Messenger>& theMsgDriver) const = 0;
0072
0073 Standard_EXPORT virtual int ReadDocumentVersion(
0074 const TCollection_ExtendedString& aFileName,
0075 const occ::handle<Message_Messenger>& theMsgDriver) const = 0;
0076
0077 Standard_EXPORT static void Open(const occ::handle<Storage_BaseDriver>& aDriver,
0078 const TCollection_ExtendedString& aFileName,
0079 const Storage_OpenMode anOpenMode);
0080
0081
0082 Standard_EXPORT static occ::handle<PCDM_ReadWriter> Reader(
0083 const TCollection_ExtendedString& aFileName);
0084
0085 Standard_EXPORT static occ::handle<PCDM_ReadWriter> Writer();
0086
0087 Standard_EXPORT static void WriteFileFormat(const occ::handle<Storage_Data>& aData,
0088 const occ::handle<CDM_Document>& aDocument);
0089
0090
0091
0092
0093 Standard_EXPORT static TCollection_ExtendedString FileFormat(
0094 const TCollection_ExtendedString& aFileName);
0095
0096
0097
0098
0099 Standard_EXPORT static TCollection_ExtendedString FileFormat(Standard_IStream& theIStream,
0100 occ::handle<Storage_Data>& theData);
0101
0102 DEFINE_STANDARD_RTTIEXT(PCDM_ReadWriter, Standard_Transient)
0103 };
0104
0105 #endif