// 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 _BinObjMgt_Persistent_HeaderFile #define _BinObjMgt_Persistent_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TColStd_SequenceOfAddress_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Character_HeaderFile #include #endif #ifndef _Standard_Byte_HeaderFile #include #endif #ifndef _Standard_ExtCharacter_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_ShortReal_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif #ifndef _BinObjMgt_PChar_HeaderFile #include #endif #ifndef _BinObjMgt_PByte_HeaderFile #include #endif #ifndef _BinObjMgt_PExtChar_HeaderFile #include #endif #ifndef _BinObjMgt_PInteger_HeaderFile #include #endif #ifndef _BinObjMgt_PReal_HeaderFile #include #endif #ifndef _BinObjMgt_PShortReal_HeaderFile #include #endif #ifndef _Handle_TDF_Data_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif #ifndef _Standard_IStream_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif class TCollection_AsciiString; class TCollection_ExtendedString; class TDF_Label; class Standard_GUID; class TDF_Data; //! Binary persistent representation of an object.
//! Really it is used as a buffer for read/write an object.
//!
//! It takes care of Little/Big endian by inversing bytes
//! in objects of standard types (see FSD_FileHeader.hxx
//! for the default value of DO_INVERSE).
class BinObjMgt_Persistent { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Empty constructor
Standard_EXPORT BinObjMgt_Persistent(); Standard_EXPORT BinObjMgt_Persistent& PutCharacter(const Standard_Character theValue) ; BinObjMgt_Persistent& operator <<(const Standard_Character theValue) { return PutCharacter(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutByte(const Standard_Byte theValue) ; BinObjMgt_Persistent& operator <<(const Standard_Byte theValue) { return PutByte(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutExtCharacter(const Standard_ExtCharacter theValue) ; BinObjMgt_Persistent& operator <<(const Standard_ExtCharacter theValue) { return PutExtCharacter(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutInteger(const Standard_Integer theValue) ; BinObjMgt_Persistent& operator <<(const Standard_Integer theValue) { return PutInteger(theValue); } BinObjMgt_Persistent& PutBoolean(const Standard_Boolean theValue) ; BinObjMgt_Persistent& operator <<(const Standard_Boolean theValue) { return PutBoolean(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutReal(const Standard_Real theValue) ; BinObjMgt_Persistent& operator <<(const Standard_Real theValue) { return PutReal(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutShortReal(const Standard_ShortReal theValue) ; BinObjMgt_Persistent& operator <<(const Standard_ShortReal theValue) { return PutShortReal(theValue); } //! Offset in output buffer is not aligned
Standard_EXPORT BinObjMgt_Persistent& PutCString(const Standard_CString theValue) ; BinObjMgt_Persistent& operator <<(const Standard_CString theValue) { return PutCString(theValue); } //! Offset in output buffer is word-aligned
Standard_EXPORT BinObjMgt_Persistent& PutAsciiString(const TCollection_AsciiString& theValue) ; BinObjMgt_Persistent& operator <<(const TCollection_AsciiString& theValue) { return PutAsciiString(theValue); } //! Offset in output buffer is word-aligned
Standard_EXPORT BinObjMgt_Persistent& PutExtendedString(const TCollection_ExtendedString& theValue) ; BinObjMgt_Persistent& operator <<(const TCollection_ExtendedString& theValue) { return PutExtendedString(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutLabel(const TDF_Label& theValue) ; BinObjMgt_Persistent& operator <<(const TDF_Label& theValue) { return PutLabel(theValue); } Standard_EXPORT BinObjMgt_Persistent& PutGUID(const Standard_GUID& theValue) ; BinObjMgt_Persistent& operator <<(const Standard_GUID& theValue) { return PutGUID(theValue); } //! Put C array of char, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutCharArray(const BinObjMgt_PChar theArray,const Standard_Integer theLength) ; //! Put C array of unsigned chars, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutByteArray(const BinObjMgt_PByte theArray,const Standard_Integer theLength) ; //! Put C array of ExtCharacter, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutExtCharArray(const BinObjMgt_PExtChar theArray,const Standard_Integer theLength) ; //! Put C array of int, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutIntArray(const BinObjMgt_PInteger theArray,const Standard_Integer theLength) ; //! Put C array of double, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutRealArray(const BinObjMgt_PReal theArray,const Standard_Integer theLength) ; //! Put C array of float, theLength is the number of elements
Standard_EXPORT BinObjMgt_Persistent& PutShortRealArray(const BinObjMgt_PShortReal theArray,const Standard_Integer theLength) ; Standard_EXPORT const BinObjMgt_Persistent& GetCharacter(Standard_Character& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_Character& theValue) const { return GetCharacter(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetByte(Standard_Byte& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_Byte& theValue) const { return GetByte(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetExtCharacter(Standard_ExtCharacter& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_ExtCharacter& theValue) const { return GetExtCharacter(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetInteger(Standard_Integer& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_Integer& theValue) const { return GetInteger(theValue); } const BinObjMgt_Persistent& GetBoolean(Standard_Boolean& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_Boolean& theValue) const { return GetBoolean(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetReal(Standard_Real& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_Real& theValue) const { return GetReal(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetShortReal(Standard_ShortReal& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_ShortReal& theValue) const { return GetShortReal(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetAsciiString(TCollection_AsciiString& theValue) const; const BinObjMgt_Persistent& operator >>(TCollection_AsciiString& theValue) const { return GetAsciiString(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetExtendedString(TCollection_ExtendedString& theValue) const; const BinObjMgt_Persistent& operator >>(TCollection_ExtendedString& theValue) const { return GetExtendedString(theValue); } Standard_EXPORT const BinObjMgt_Persistent& GetLabel(const Handle(TDF_Data)& theDS,TDF_Label& theValue) const; Standard_EXPORT const BinObjMgt_Persistent& GetGUID(Standard_GUID& theValue) const; const BinObjMgt_Persistent& operator >>(Standard_GUID& theValue) const { return GetGUID(theValue); } //! Get C array of char, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetCharArray(const BinObjMgt_PChar theArray,const Standard_Integer theLength) const; //! Get C array of unsigned chars, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetByteArray(const BinObjMgt_PByte theArray,const Standard_Integer theLength) const; //! Get C array of ExtCharacter, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetExtCharArray(const BinObjMgt_PExtChar theArray,const Standard_Integer theLength) const; //! Get C array of int, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetIntArray(const BinObjMgt_PInteger theArray,const Standard_Integer theLength) const; //! Get C array of double, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetRealArray(const BinObjMgt_PReal theArray,const Standard_Integer theLength) const; //! Get C array of float, theLength is the number of elements;
//! theArray must point to a
//! space enough to place theLength elements
Standard_EXPORT const BinObjMgt_Persistent& GetShortRealArray(const BinObjMgt_PShortReal theArray,const Standard_Integer theLength) const; //! Tells the current position for get/put
Standard_Integer Position() const; //! Sets the current position for get/put.
//! Resets an error state depending on the validity of thePos.
//! Returns the new state (value of IsOK())
Standard_Boolean SetPosition(const Standard_Integer thePos) const; //! Truncates the buffer by current position,
//! i.e. updates mySize
void Truncate() ; //! Indicates an error after Get methods or SetPosition
Standard_Boolean IsError() const; Standard_Boolean operator !() const { return IsError(); } //! Indicates a good state after Get methods or SetPosition
Standard_Boolean IsOK() const; operator Standard_Boolean () const { return IsOK(); } //! Initializes me to reuse again
Standard_EXPORT void Init() ; //! Sets the Id of the object
void SetId(const Standard_Integer theId) ; //! Sets the Id of the type of the object
void SetTypeId(const Standard_Integer theId) ; //! Returns the Id of the object
Standard_Integer Id() const; //! Returns the Id of the type of the object
Standard_Integer TypeId() const; //! Returns the length of data
Standard_Integer Length() const; //! Stores to the stream.
//! inline Standard_OStream& operator<< (Standard_OStream&,
//! BinObjMgt_Persistent&) is also available
Standard_EXPORT Standard_OStream& Write(Standard_OStream& theOS) ; //! Retrieves from the stream.
//! inline Standard_IStream& operator>> (Standard_IStream&,
//! BinObjMgt_Persistent&) is also available
Standard_EXPORT Standard_IStream& Read(Standard_IStream& theIS) ; //! Frees the allocated memory;
//! This object can be reused after call to Init
Standard_EXPORT void Destroy() ; ~BinObjMgt_Persistent() { Destroy(); } protected: private: //! Aligns myOffset to the given size;
//! enters the next piece if the end of the current one is reached;
//! toClear==true means to fill unused space by 0
void alignOffset(const Standard_Integer theSize,const Standard_Boolean toClear = Standard_False) const; //! Prepares the room for theSize bytes;
//! returns the number of pieces except for the current one
//! are to be occupied
Standard_Integer prepareForPut(const Standard_Integer theSize) ; //! Allocates theNbPieces more pieces
Standard_EXPORT void incrementData(const Standard_Integer theNbPieces) ; //! Checks if there is no more data of the given size starting
//! from the current position in myData
Standard_Boolean noMoreData(const Standard_Integer theSize) const; //! Puts theLength bytes from theArray
Standard_EXPORT void putArray(const Standard_Address theArray,const Standard_Integer theSize) ; //! Gets theLength bytes into theArray
Standard_EXPORT void getArray(const Standard_Address theArray,const Standard_Integer theSize) const; //! Inverses bytes in the data addressed by the given values
Standard_EXPORT void inverseExtCharData(const Standard_Integer theIndex,const Standard_Integer theOffset,const Standard_Integer theSize) ; //! Inverses bytes in the data addressed by the given values
Standard_EXPORT void inverseIntData(const Standard_Integer theIndex,const Standard_Integer theOffset,const Standard_Integer theSize) ; //! Inverses bytes in the data addressed by the given values
Standard_EXPORT void inverseRealData(const Standard_Integer theIndex,const Standard_Integer theOffset,const Standard_Integer theSize) ; //! Inverses bytes in the data addressed by the given values
Standard_EXPORT void inverseShortRealData(const Standard_Integer theIndex,const Standard_Integer theOffset,const Standard_Integer theSize) ; TColStd_SequenceOfAddress myData; Standard_Integer myIndex; Standard_Integer myOffset; Standard_Integer mySize; Standard_Boolean myIsError; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif