// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _PCDM_ReadWriter_HeaderFile
#define _PCDM_ReadWriter_HeaderFile

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_PCDM_ReadWriter.hxx>

#include <Standard_Transient.hxx>
#include <Handle_Storage_Data.hxx>
#include <Handle_CDM_Document.hxx>
#include <Standard_Integer.hxx>
#include <Handle_CDM_MessageDriver.hxx>
#include <Storage_OpenMode.hxx>
class TCollection_AsciiString;
class Storage_Data;
class CDM_Document;
class TCollection_ExtendedString;
class CDM_MessageDriver;
class PCDM_SequenceOfReference;
class TColStd_SequenceOfExtendedString;
class Storage_BaseDriver;



class PCDM_ReadWriter : public Standard_Transient
{

public:

  
  //! returns PCDM_ReadWriter_1.
  Standard_EXPORT virtual   TCollection_AsciiString Version()  const = 0;
  
  Standard_EXPORT virtual   void WriteReferenceCounter (const Handle(Storage_Data)& aData, const Handle(CDM_Document)& aDocument)  const = 0;
  
  Standard_EXPORT virtual   void WriteReferences (const Handle(Storage_Data)& aData, const Handle(CDM_Document)& aDocument, const TCollection_ExtendedString& theReferencerFileName)  const = 0;
  
  Standard_EXPORT virtual   void WriteExtensions (const Handle(Storage_Data)& aData, const Handle(CDM_Document)& aDocument)  const = 0;
  
  Standard_EXPORT virtual   void WriteVersion (const Handle(Storage_Data)& aData, const Handle(CDM_Document)& aDocument)  const = 0;
  
  Standard_EXPORT virtual   Standard_Integer ReadReferenceCounter (const TCollection_ExtendedString& theFileName, const Handle(CDM_MessageDriver)& theMsgDriver)  const = 0;
  
  Standard_EXPORT virtual   void ReadReferences (const TCollection_ExtendedString& aFileName, PCDM_SequenceOfReference& theReferences, const Handle(CDM_MessageDriver)& theMsgDriver)  const = 0;
  
  Standard_EXPORT virtual   void ReadExtensions (const TCollection_ExtendedString& aFileName, TColStd_SequenceOfExtendedString& theExtensions, const Handle(CDM_MessageDriver)& theMsgDriver)  const = 0;
  
  Standard_EXPORT virtual   Standard_Integer ReadDocumentVersion (const TCollection_ExtendedString& aFileName, const Handle(CDM_MessageDriver)& theMsgDriver)  const = 0;
  
  Standard_EXPORT static   void Open (Storage_BaseDriver& aDriver, const TCollection_ExtendedString& aFileName, const Storage_OpenMode anOpenMode) ;
  
  //! returns the convenient Reader for a File.
  Standard_EXPORT static   Handle(PCDM_ReadWriter) Reader (const TCollection_ExtendedString& aFileName) ;
  
  Standard_EXPORT static   Handle(PCDM_ReadWriter) Writer() ;
  
  Standard_EXPORT static   void WriteFileFormat (const Handle(Storage_Data)& aData, const Handle(CDM_Document)& aDocument) ;
  
  //! tries  to get a format  in the  file.  returns an empty
  //! string if the file could not be read or does not have
  //! a FileFormat information.
  Standard_EXPORT static   TCollection_ExtendedString FileFormat (const TCollection_ExtendedString& aFileName) ;




  DEFINE_STANDARD_RTTI(PCDM_ReadWriter)

protected:




private: 




};







#endif // _PCDM_ReadWriter_HeaderFile
