mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0026229: Add the possibility in OCAF to open/save a document from/to a stream object
TDocStd_Application class extended to open/save a document of XmlOcaf and BinOcaf format from/to standard SEEKABLE stream object which should support SEEK functionality. Open and SaveAs DRAW commands got new additional argument "-stream" to turn on using of stream functionality. The main changes for BinOcaf format applied in: FSD_BinaryFile class (static method using standard stream added) BinLDrivers_DocumentRetrievalDriver and BinLDrivers_DocumentStorageDriver classes use standard stream object as an argument The main changes for XmlOcaf format applied in: LDOMParser and LDOM_XmlWriter classes use standard stream object as an argument Unused class FSD_Archive and its siblings removed from MFC samples.
This commit is contained in:
@@ -27,3 +27,22 @@ Storage_BaseDriver::Storage_BaseDriver() : myOpenMode(Storage_VSNone)
|
||||
void Storage_BaseDriver::Delete()
|
||||
{}
|
||||
|
||||
TCollection_AsciiString Storage_BaseDriver::ReadMagicNumber (Standard_IStream& theIStream)
|
||||
{
|
||||
// magic number has the same length which is 7: BINFILE, CMPFILE and FSDFILE
|
||||
Standard_Size aMagicNumberLen = 7;
|
||||
|
||||
TCollection_AsciiString aReadMagicNumber;
|
||||
|
||||
char aChar;
|
||||
Standard_Size aReadCharNb = 0;
|
||||
|
||||
while (theIStream.good() && (aReadCharNb < aMagicNumberLen))
|
||||
{
|
||||
theIStream.get(aChar);
|
||||
aReadCharNb += (Standard_Size)theIStream.gcount();
|
||||
aReadMagicNumber += aChar;
|
||||
}
|
||||
|
||||
return aReadMagicNumber;
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <Storage_Error.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Storage_Data.hxx>
|
||||
#include <Storage_Position.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_SequenceOfAsciiString.hxx>
|
||||
@@ -61,6 +62,8 @@ Standard_EXPORT virtual ~Storage_BaseDriver(){Delete();}
|
||||
TCollection_AsciiString Name() const;
|
||||
|
||||
Storage_OpenMode OpenMode() const;
|
||||
|
||||
Standard_EXPORT static TCollection_AsciiString ReadMagicNumber (Standard_IStream& theIStream);
|
||||
|
||||
//! returns True if we are at end of the stream
|
||||
Standard_EXPORT virtual Standard_Boolean IsEnd() = 0;
|
||||
@@ -77,6 +80,8 @@ Standard_EXPORT virtual ~Storage_BaseDriver(){Delete();}
|
||||
Standard_EXPORT virtual Storage_Error BeginReadInfoSection() = 0;
|
||||
|
||||
Standard_EXPORT virtual 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) = 0;
|
||||
|
||||
Standard_EXPORT virtual void ReadCompleteInfo (Standard_IStream& theIStream, Handle(Storage_Data)& theData) = 0;
|
||||
|
||||
Standard_EXPORT virtual Storage_Error EndReadInfoSection() = 0;
|
||||
|
||||
|
@@ -230,14 +230,7 @@ friend class Storage_Schema;
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Storage_Data,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Handle(Storage_HeaderData) HeaderData() const;
|
||||
|
||||
Standard_EXPORT Handle(Storage_RootData) RootData() const;
|
||||
@@ -247,7 +240,9 @@ private:
|
||||
Standard_EXPORT Handle(Storage_InternalData) InternalData() const;
|
||||
|
||||
Standard_EXPORT void Clear() const;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Standard_EXPORT void SetErrorStatus (const Storage_Error anError);
|
||||
|
||||
Standard_EXPORT void SetErrorStatusExtension (const TCollection_AsciiString& anErrorExt);
|
||||
|
@@ -103,13 +103,7 @@ friend class Storage_Schema;
|
||||
|
||||
DEFINE_STANDARD_RTTIEXT(Storage_HeaderData,MMgt_TShared)
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT void SetNumberOfObjects (const Standard_Integer anObjectNumber);
|
||||
|
||||
@@ -120,7 +114,9 @@ private:
|
||||
Standard_EXPORT void SetSchemaVersion (const TCollection_AsciiString& aVersion);
|
||||
|
||||
Standard_EXPORT void SetSchemaName (const TCollection_AsciiString& aName);
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Standard_EXPORT void SetErrorStatus (const Storage_Error anError);
|
||||
|
||||
Standard_EXPORT void SetErrorStatusExtension (const TCollection_AsciiString& anErrorExt);
|
||||
|
@@ -37,6 +37,7 @@ class Storage_InternalData : public MMgt_TShared
|
||||
|
||||
public:
|
||||
|
||||
Standard_EXPORT Handle(Storage_HPArray) ReadArray() {return myReadArray;}
|
||||
|
||||
Standard_EXPORT Storage_InternalData();
|
||||
|
||||
|
@@ -83,6 +83,12 @@ public:
|
||||
//! Returns the name of this root type.
|
||||
Standard_EXPORT TCollection_AsciiString Type() const;
|
||||
|
||||
Standard_EXPORT void SetReference (const Standard_Integer aRef);
|
||||
|
||||
Standard_EXPORT Standard_Integer Reference() const;
|
||||
|
||||
Standard_EXPORT void SetType (const TCollection_AsciiString& aType);
|
||||
|
||||
|
||||
friend class Storage_Schema;
|
||||
|
||||
@@ -97,11 +103,6 @@ protected:
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void SetReference (const Standard_Integer aRef);
|
||||
|
||||
Standard_EXPORT Standard_Integer Reference() const;
|
||||
|
||||
Standard_EXPORT void SetType (const TCollection_AsciiString& aType);
|
||||
|
||||
TCollection_AsciiString myName;
|
||||
TCollection_AsciiString myType;
|
||||
|
@@ -70,6 +70,7 @@ public:
|
||||
|
||||
Standard_EXPORT void ClearErrorStatus();
|
||||
|
||||
Standard_EXPORT void UpdateRoot (const TCollection_AsciiString& aName, const Handle(Standard_Persistent)& aPers);
|
||||
|
||||
friend class Storage_Schema;
|
||||
|
||||
@@ -84,7 +85,6 @@ protected:
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void UpdateRoot (const TCollection_AsciiString& aName, const Handle(Standard_Persistent)& aPers);
|
||||
|
||||
Standard_EXPORT void SetErrorStatus (const Storage_Error anError);
|
||||
|
||||
|
@@ -58,6 +58,15 @@ public:
|
||||
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
//! add a type to the list
|
||||
Standard_EXPORT void AddType (const TCollection_AsciiString& aName, const Standard_Integer aTypeNum);
|
||||
|
||||
//! returns the name of the type with number <aTypeNum>
|
||||
Standard_EXPORT TCollection_AsciiString Type (const Standard_Integer aTypeNum) const;
|
||||
|
||||
//! returns the name of the type with number <aTypeNum>
|
||||
Standard_EXPORT Standard_Integer Type (const TCollection_AsciiString& aTypeName) const;
|
||||
|
||||
|
||||
friend class Storage_Schema;
|
||||
|
||||
@@ -72,15 +81,6 @@ protected:
|
||||
private:
|
||||
|
||||
|
||||
//! add a type to the list
|
||||
Standard_EXPORT void AddType (const TCollection_AsciiString& aName, const Standard_Integer aTypeNum);
|
||||
|
||||
//! returns the name of the type with number <aTypeNum>
|
||||
Standard_EXPORT TCollection_AsciiString Type (const Standard_Integer aTypeNum) const;
|
||||
|
||||
//! returns the name of the type with number <aTypeNum>
|
||||
Standard_EXPORT Standard_Integer Type (const TCollection_AsciiString& aTypeName) const;
|
||||
|
||||
Standard_EXPORT void SetErrorStatus (const Storage_Error anError);
|
||||
|
||||
Standard_EXPORT void SetErrorStatusExtension (const TCollection_AsciiString& anErrorExt);
|
||||
|
Reference in New Issue
Block a user