1
0
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:
ibs
2015-11-27 13:03:25 +03:00
committed by bugmaster
parent 77dbd1f155
commit 4ff92abe44
72 changed files with 2011 additions and 2462 deletions

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -37,6 +37,7 @@ class Storage_InternalData : public MMgt_TShared
public:
Standard_EXPORT Handle(Storage_HPArray) ReadArray() {return myReadArray;}
Standard_EXPORT Storage_InternalData();

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);