C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
+ Collaboration diagram for Work with Streams:

Classes

class  Cluster
 Cluster. More...
 
class  FileSpace
 File space. More...
 
struct  ClusterReference
 Position for reading/writing in a cluster. More...
 
class  iobuf_Seq
 Stream buffer. More...
 
class  membuf
 Memory stream buffer. More...
 
class  TapeRegistrator
 Compile with the given preprocessor define for control of reading/writing char* and TCHAR* only via ReadTCHAR/WriteTCHAR(), not via illegally operator << and >>. More...
 
class  TapeRegistratorEx
 Array for registration of objects with information about reading/writing position. More...
 
class  ScopedReadProgress
 Scoped progress indicator for reader. More...
 
class  ClassDescriptor
 Packed class name. More...
 
class  TapeClass
 "Wrapper" for one stream class. More...
 
class  TapeManager
 Stream manager. More...
 
struct  TapeClassContainer
 Array of stream classes registration. More...
 
class  rw
 Stream for reading and writing. More...
 
class  C3DLocaleSwitcher
 Local setting of the locale. More...
 
class  TapeBase
 Base class for stream classes. More...
 
class  tape
 The base class of the stream for implementation of reading and writing. More...
 
class  reader
 Stream for reading. More...
 
class  reader_ex
 Stream for reading from several FileSpaces by given positions in clusters. More...
 
class  writer
 Stream for writing. More...
 
class  writer_ex
 Stream for writing to several FileSpaces. More...
 
class  c3d::IModelTreeNode
 Model tree node. More...
 
class  c3d::IModelTree
 Generic model tree. More...
 
class  c3d::IEmbodimentNode
 Embodiments tree node. More...
 
class  c3d::IEmbodimentTree
 Embodiment Tree. More...
 
class  VersionContainer
 Container of versions. More...
 
class  c3d::MbTreeNode
 Tree node. More...
 
class  c3d::MbEmbodimentNode
 Embodiments tree node. More...
 
class  c3d::MbModelTree
 Tree of geometric model. More...
 
class  c3d::ItemDataBase
 A base class for user data of a tree node. More...
 
class  c3d::ItemDataBool
 Bool property. More...
 
class  c3d::ItemDataInteger
 Integer property. More...
 
class  c3d::ItemDataDouble
 Double property. More...
 
class  c3d::ItemDataString
 String property. More...
 
class  c3d::ItemAttrBool
 Data of Bool attribute. More...
 
class  c3d::ItemAttrInteger
 Data of Integer attribute. More...
 
class  c3d::ItemAttrDouble
 Data of Double attribute. More...
 
class  c3d::ItemAttrString
 Data of String attribute. More...
 
class  c3d::ItemAttrProductInfo
 Data of MbProductInfo attribute. More...
 
class  c3d::ItemAttrInt64
 Data of int64 attribute. More...
 
class  c3d::ItemAttrIdentifier
 Data of Identifier attribute. More...
 
class  c3d::ItemAttrColor
 Data of Color attribute. More...
 
class  c3d::ItemAttrWidth
 Data of Width attribute. More...
 
class  c3d::ItemAttrStyle
 Data of Style attribute. More...
 
class  c3d::ItemAttrSelected
 Data of Selection attribute. More...
 
class  c3d::ItemAttrVisible
 Data of Visibility attribute. More...
 
class  c3d::ItemAttrChanged
 Data of Modification attribute. More...
 
class  c3d::ItemAttrDencity
 Data of Dencity attribute. More...
 
class  c3d::ItemAttrUpdateStamp
 Data of Update timestamp attribute. More...
 
class  c3d::ItemAttrAnchor
 Data of Anchor attribute. More...
 
class  c3d::ItemAttrEmbodiment
 Data of embodiment attribute. More...
 
class  c3d::ItemAttrThickness
 Data of Thickness attribute. More...
 
class  c3d::UserDataMap
 A container for user data of a tree node. More...
 
struct  c3d::MbItemData
 Tree node data. More...
 

Macros

#define __OVERLOAD_MEMORY_ALLOCATE_FREE_
 The variable enables overloading of new/delete operators which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define DECLARE_NEW_DELETE_CLASS(Class)
 Declaration of functions new, delete and access operators.
 
#define DECLARE_NEW_DELETE_CLASS_EX(Class)
 Declaration of new and delete operators which provide sequential access to the allocation/deallocation functions from different threads. All standard new and delete operators are overloaded. The implementation is located in the macros IMP_PERSISTENT_NEW_DELETE_CLASS_EX.
 
#define DECLARE_PERSISTENT_OPS_BASE(Class, DLLFUNC)
 Declaration of friend operators of reading and writing of pointers and references. The implementation is located in the macros IMP_PERSISTENT_OPS_BASE.
 
#define DECLARE_PERSISTENT_CTOR(Class)
 Constructor for a stream class. The implementation should be provided by the user.
 
#define DECLARE_PERSISTENT_FUNCS(Class)
 Functions of reading and writing. The implementation should be provided by the user.
 
#define DECLARE_CLASS_DESC_FUNC(Class)
 The implementation is located in the macros IMP_CLASS_DESC_FUNC.
 
#define DECLARE_PERSISTENT_CLASS_BASE(Class, DLLFUNC)
 Declaration of class Class as a stream one. More...
 
#define DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE(Class, DLLFUNC)
 Analog of DECLARE_PERSISTENT_CLASS_BASE macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define IMPL_PERSISTENT_OPS(Class)
 Operators of reading and writing of pointers and references.
 
#define EOF   (-1)
 End of file.
 
#define IMP_PERSISTENT_OPS_BASE(Class, DLLFUNC)
 Implementation of friend operators of reading and writing of pointers and references declared in DECLARE_PERSISTENT_OPS_BASE macro.
 
#define IMP_CLASS_DESC_FUNC(AppID, Class)
 Implementation of DECLARE_CLASS_DESC_FUNC marco.
 
#define IMP_PERSISTENT_REGISTRATION(AppID, Class)
 Construction of a new instance of the class. More...
 
#define IMP_PERSISTENT_NEW_DELETE_CLASS(Class)
 Implementation of functions new, delete and access operators (declared в DECLARE_NEW_DELETE_CLASS).
 
#define IMP_PERSISTENT_NEW_DELETE_CLASS_EX(Class)
 Implementation of new and delete operators which provides sequential access to the allocation/deallocation functions from different threads (declared in DECLARE_NEW_DELETE_CLASS_EX).
 
#define IMP_PERSISTENT_CLASS_OPS(AppID, Class, DLLFUNC)
 Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration. More...
 
#define IMP_A_PERSISTENT_CLASS_OPS(AppID, Class, DLLFUNC)
 Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration for an abstract stream class. More...
 
#define IMP_PERSISTENT_CLASS_NEW_DEL_OPS(AppID, Class, DLLFUNC)
 Implementation of DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE declaration. More...
 
#define IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL(AppID, Class, Base)
 Analog of IMP_PERSISTENT_CLASS_FROM_BASE macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define IMP_PERSISTENT_CLASS_WD_NEW_DEL(AppID, Class)
 Analog of IMP_PERSISTENT_CLASS_WD macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define IMP_PERSISTENT_CLASS(AppID, Class)
 Implementation of DECLARE_PERSISTENT_CLASS declaration. More...
 
#define IMP_PERSISTENT_CLASS_NEW_DEL(AppID, Class)
 Analog of IMP_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define IMP_PERSISTENT_RO_REGISTRATION(AppID, Class)
 Construction of a new instance of the class for a class without writing.
 
#define IMP_PERSISTENT_RO_CLASS_NEW_DEL(AppID, Class)
 Analog of IMP_PERSISTENT_RO_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 
#define DECLARE_PERSISTENT_OPS_B(Class)
 Declaration of operators of reading and writing of pointers and references. More...
 
#define DECLARE_PERSISTENT_RO_OPS(Class)
 Operators of reading pointers and references for a class without writing. More...
 
#define DECLARE_PERSISTENT_RO_FUNCS(Class)
 Function of reading for class without writing. More...
 
#define IMP_PERSISTENT_CTOR(Class)    Class::Class( TapeInit ) {}
 Constructor for a stream class.
 
#define IMP_PERSISTENT_CTOR1(Class, Base)    Class::Class( TapeInit ) : Base( tapeInit ) {}
 Constructor for a class with one stream base.
 
#define IMP_PERSISTENT_CTOR2(Class, Base1, Base2)    Class::Class( TapeInit ) : Base1( tapeInit ), Base2( tapeInit ) {}
 Constructor for a class with two stream bases.
 
#define DECLARE_PERSISTENT_OPS(Class)
 Friend operators of reading and writing of pointers and references.
 
#define DECLARE_PERSISTENT_CLASS(Class)
 Declaration of class Class as a stream one. More...
 
#define DECLARE_PERSISTENT_CLASS_NEW_DEL(Class)
 Analog of DECLARE_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads. More...
 

Typedefs

typedef TapeBase *CALL_DECLARATIONBUILD_FUNC(void)
 Template of function of a new instance creation.
 
typedef void *CALL_DECLARATIONCAST_FUNC(const TapeBase *)
 Template of conversion function. More...
 
typedef void *typedef void(CALL_DECLARATION *WRITE_FUNC) (writer &out
 Template of instance writing function. More...
 

Enumerations

enum  RegistrableRec { noRegistrable , registrable }
 Types of objects registration. More...
 
enum  TapeInit { tapeInit }
 The objects initialization types. More...
 
enum  TapePointerType {
  tpt_Null = 0x00 , tpt_Indexed16 = 0x01 , tpt_Object = 0x02 , tpt_Indexed8 = 0x03 ,
  tpt_Indexed32 = 0x04 , tpt_Indexed64 = 0x05 , tpt_DetachedObject = 0x06 , tpt_ObjectCatalog = 0x07
}
 Methods of writing pointers. More...
 
enum  c3d::MbeItemDataType
 A type of user data of the model tree node. More...
 

Functions

bool IsEqualSArrayItems (const Cluster &, const Cluster &)
 
size_t LenCOUNT (VERSION version)
 Length of size_t data in the stream.
 
size_t SizeOfFileSpace (VERSION version, size_t cnt, bool calcFull)
 Length of FileSpace data in stream of the specified version.
 
size_t getMemLen (const Cluster &c, VERSION)
 Size of cluster's data. More...
 
size_t getMemLen (const FileSpace &s, VERSION version)
 The file data size. More...
 
bool IsGoodFile (const FileSpace &file, const iobuf_Seq &owner)
 Check the cluster array of the file. More...
 
iobufcreateiobuf (const TCHAR *fileName)
 Read the buffer from the disk.
 
bool writeiobuftodisk (const TCHAR *fileName, membuf &buf)
 Write the buffer to the disk.
 
template<class Base >
void ReadBase (reader &in, Base *base)
 Function of reading the base class.
 
template<class Base >
void WriteBase (writer &out, const Base *base)
 Function of writing the base class.
 
template<class Base >
void ReadVBase (reader &in, Base *base)
 Function of reading of a virtual base class.
 
template<class Base >
void WriteVBase (writer &out, const Base *base)
 Function of writing of a virtual base class.
 
uint16 hash (const char *name)
 Pack the string (class name) into uint16.
 
writeroperator<< (writer &ps, bool i)
 Writing bool to the stream.
 
readeroperator>> (reader &ps, bool &i)
 Reading of bool to the stream.
 
writeroperator<< (writer &ps, signed int i)
 Writing signed int to the stream.
 
writeroperator<< (writer &ps, unsigned int i)
 Writing unsigned int to the stream.
 
readeroperator>> (reader &ps, signed int &i)
 Reading signed int to the stream.
 
readeroperator>> (reader &ps, unsigned int &i)
 Reading unsigned int to the stream.
 
writeroperator<< (writer &ps, int64 val)
 Writing int32 to the stream. More...
 
readeroperator>> (reader &ps, int64 &val)
 Reading int64 to the stream.
 
readeroperator>> (reader &ps, signed char &ch)
 Reading signed char to the stream.
 
readeroperator>> (reader &ps, unsigned char &ch)
 Reading unsigned char to the stream.
 
readeroperator>> (reader &ps, char &ch)
 Reading char to the stream.
 
readeroperator>> (reader &ps, signed short &sh)
 Reading signed short to the stream.
 
readeroperator>> (reader &ps, unsigned short &sh)
 Reading unsigned short to the stream.
 
readeroperator>> (reader &ps, wchar_t &sh)
 Reading wchar_t to the stream.
 
readeroperator>> (reader &ps, float &f)
 Reading float to the stream.
 
readeroperator>> (reader &ps, double &d)
 Reading double to the stream.
 
readeroperator>> (reader &ps, long double &l)
 Reading long double from the stream.
 
template<class _Class >
readeroperator>> (reader &ps, SPtr< _Class > &sPtr)
 Reading a smart pointer from the stream.
 
template<class _Class >
writeroperator<< (writer &ps, const SPtr< _Class > &sPtr)
 Writing a smart pointer to the stream.
 
writeroperator<< (writer &ps, signed char ch)
 Write signed char to the stream.
 
writeroperator<< (writer &ps, unsigned char ch)
 Write unsigned char to the stream.
 
writeroperator<< (writer &ps, char ch)
 Write char to the stream.
 
writeroperator<< (writer &ps, signed short sh)
 Write signed short to the stream.
 
writeroperator<< (writer &ps, unsigned short sh)
 Write unsigned short to the stream.
 
writeroperator<< (writer &ps, wchar_t sh)
 Write wchar_t to the stream.
 
writeroperator<< (writer &ps, float f)
 Write float to the stream.
 
writeroperator<< (writer &ps, const double &d)
 Write double to the stream.
 
writeroperator<< (writer &ps, const long double &l)
 Write long double to the stream.
 
void WriteTCHAR (writer &out, const TCHAR *ts, bool directSingleByte=false)
 Write TCHAR string to the stream.
 
void ReadTCHAR (reader &in, TCHAR *&ts, bool directSingleByte=false)
 Read TCHAR string from the stream.
 
void WriteWcharT (writer &out, const wchar_t *ts)
 Write wchar_t string to the stream.
 
void ReadWcharT (reader &in, wchar_t *&ts)
 Read TCHAR string from the stream.
 
void WriteCOUNT (writer &out, size_t count)
 Write size_t subject to the stream version.
 
void WriteINT_T (writer &out, ptrdiff_t count)
 Writing ptrdiff_t subject to the stream version.
 
size_t ReadCOUNT (reader &in, bool uint_val=true)
 Reading size_t subject to the stream version.
 
ptrdiff_t ReadINT_T (reader &in, bool uint_val=true)
 Reading ptrdiff_t subject to the stream version.
 
void WriteCOUNT (void *out, VERSION version, size_t count)
 Writing size_t to the memory subject to the stream version.
 
void WriteCOUNT (void *out, VERSION version, ptrdiff_t count)
 Writing ptrdiff_t to the memory subject to the stream version.
 
size_t ReadCOUNT (void *in, VERSION version)
 Reading of size_t to the memory subject to the stream version.
 
ClassDescriptor GetPackedClassName (const ClassDescriptor &classDescr, const VersionContainer &ver)
 Get the packed class name from the hash value written to the stream. More...
 
void AddPackedClassNameForVersion (const ClassDescriptor &newClassName, const ClassDescriptor &oldClassName, uint appIndex, VERSION lowVersion, VERSION highVersion)
 Add a new mapping of the hash value written to the stream to the packed class name. More...
 
bool IsValidStreamClassName (const char *className, const MbUuid &appID)
 Diagnostics of collisions of new class name with registered classes. More...
 
void WriteSimpleName (writer &out, const SimpleName &s)
 Writing of a simple name.
 
SimpleName ReadSimpleName (reader &in)
 Reading of a simple name.
 
writerc3d::operator<< (writer &out, const StrHash &strHash)
 Operator of writing hash. More...
 
readerc3d::operator>> (reader &in, c3d::StrHash &strHash)
 Operator of hash reading. More...
 
writeroperator<< (writer &ps, const std::string &s)
 Writing a string to the stream.
 
readeroperator>> (reader &ps, std::string &s)
 Reading a string from the stream.
 
writeroperator<< (writer &ps, const std::wstring &s)
 Writing a string to the stream.
 
readeroperator>> (reader &ps, std::wstring &s)
 Reading a string from the stream.
 
writeroperator<< (writer &ps, const std::wstring *s)
 Writing a string to the stream.
 
void ReadCluster (reader &in, uint16 clusterSize, Cluster &cl)
 Read the cluster. More...
 
size_t WriteClusterInfo (void *out, VERSION version, const Cluster &obj)
 Write the information about the cluster.
 
size_t ReadClusterInfo (void *in, VERSION version, Cluster &obj)
 Read the information about the cluster.
 
readeroperator>> (reader &, VersionContainer &)
 Operator of version container reading. More...
 
writeroperator<< (writer &, const VersionContainer &)
 Operator of version container writing. More...
 

Detailed Description

Macro Definition Documentation

◆ __OVERLOAD_MEMORY_ALLOCATE_FREE_

#define __OVERLOAD_MEMORY_ALLOCATE_FREE_

The variable enables overloading of new/delete operators which provides sequential access to the allocation/deallocation functions from different threads.

The variable enables overloading of new/delete operators which provides sequential access to the allocation/deallocation functions from different threads.

◆ DECLARE_PERSISTENT_CLASS_BASE

#define DECLARE_PERSISTENT_CLASS_BASE (   Class,
  DLLFUNC 
)
Value:
DECLARE_PERSISTENT_OPS_BASE( Class, DLLFUNC ); \
DECLARE_PERSISTENT_CTOR( Class ); \
DECLARE_NEW_DELETE_CLASS( Class ); \
DECLARE_CLASS_DESC_FUNC(Class)
#define DECLARE_PERSISTENT_FUNCS(Class)
Functions of reading and writing. The implementation should be provided by the user.
Definition: io_base.h:190

Declaration of class Class as a stream one.

Declaration of class Class as a stream one. It is set in the declaration of class in file *.h. Declares operators <<, >> and also functions Read and Write which must be defined in any file *.cpp Class must be inherited from TapeBase. The read constructor must be defined for the class and its solid should be in .cpp file.
The implementation is located in the macros IMP_PERSISTENT_CLASS_OPS.

◆ DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE

#define DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE (   Class,
  DLLFUNC 
)
Value:
DECLARE_PERSISTENT_CLASS_BASE( Class, DLLFUNC ) \
DECLARE_NEW_DELETE_CLASS_EX( Class )
#define DECLARE_PERSISTENT_CLASS_BASE(Class, DLLFUNC)
Declaration of class Class as a stream one.
Definition: io_base.h:227

Analog of DECLARE_PERSISTENT_CLASS_BASE macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of DECLARE_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_). The implementation is located in the macros IMP_PERSISTENT_CLASS_NEW_DEL_OPS.

◆ IMP_PERSISTENT_REGISTRATION

#define IMP_PERSISTENT_REGISTRATION (   AppID,
  Class 
)
Value:
TapeBase * CALL_DECLARATION make ## _ ## Class () { \
return new Class(tapeInit); \
} \
void * CALL_DECLARATION cast ## _ ## Class ( const TapeBase * obj ) { \
return dynamic_cast<Class *>(const_cast<TapeBase *>(obj) ); \
} \
\
TapeClass r ## Class( \
typeid(Class).name(), \
AppID, \
(BUILD_FUNC) make ## _ ## Class, \
(CAST_FUNC ) cast ## _ ## Class, \
(READ_FUNC ) Class::Read, \
(WRITE_FUNC) Class::Write \
)
Base class for stream classes.
Definition: io_tape_define.h:246
void *CALL_DECLARATION * CAST_FUNC(const TapeBase *)
Template of conversion function.
Definition: io_tape.h:183
TapeBase *CALL_DECLARATION * BUILD_FUNC(void)
Template of function of a new instance creation.
Definition: io_tape.h:174
@ tapeInit
By default.
Definition: io_tape_define.h:234
#define CALL_DECLARATION
The CALL_DECLARATION definition.
Definition: math_define.h:199

Construction of a new instance of the class.

Construction of a new instance of the class.
Definition of functions of construction a new instance of the class, function of conversion from a pointer to TapeBase to a pointer to the class and addition of the class (not an instance) to the array of stream classes by creating variable r ## Class of type TapeClass (and in constructor of TapeClass addition to array of stream classes is performed). Symbol ## is a directive for preprocessor about the necessity of "gluing" of the current identifier with the next one.

◆ IMP_PERSISTENT_CLASS_OPS

#define IMP_PERSISTENT_CLASS_OPS (   AppID,
  Class,
  DLLFUNC 
)
Value:
IMP_PERSISTENT_REGISTRATION( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS( Class ); \
IMP_PERSISTENT_OPS_BASE( Class, DLLFUNC ); \
IMP_CLASS_DESC_FUNC( AppID, Class )
#define IMP_PERSISTENT_REGISTRATION(AppID, Class)
Construction of a new instance of the class.
Definition: io_tape.h:2063

Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration.

Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration. Describes the necessary operations for a stream class. It is set into any .cpp file. Class must be inherited from TapeBase. Function Read of reading and function Write of writing should be implemented.

◆ IMP_A_PERSISTENT_CLASS_OPS

#define IMP_A_PERSISTENT_CLASS_OPS (   AppID,
  Class,
  DLLFUNC 
)
Value:
IMP_PERSISTENT_OPS_BASE( Class, DLLFUNC ); \
IMP_CLASS_DESC_FUNC( AppID, Class )
#define IMP_PERSISTENT_NEW_DELETE_CLASS(Class)
Implementation of functions new, delete and access operators (declared в DECLARE_NEW_DELETE_CLASS).
Definition: io_tape.h:2163

Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration for an abstract stream class.

Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration for an abstract stream class. Describes the necessary operations for a stream class. It is set into any .cpp file. Class must be inherited from TapeBase. Function Read of reading and function Write of writing should be implemented.

◆ IMP_PERSISTENT_CLASS_NEW_DEL_OPS

#define IMP_PERSISTENT_CLASS_NEW_DEL_OPS (   AppID,
  Class,
  DLLFUNC 
)
Value:
IMP_PERSISTENT_CLASS_OPS( AppID, Class, DLLFUNC ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class );
#define IMP_PERSISTENT_CLASS_OPS(AppID, Class, DLLFUNC)
Implementation of DECLARE_PERSISTENT_CLASS_BASE declaration.
Definition: io_tape.h:2250

Implementation of DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE declaration.

Implementation of DECLARE_PERSISTENT_CLASS_NEW_DEL_BASE declaration. Describes the necessary operations for a stream class. It is set into any .cpp file. Class must be inherited from TapeBase. Function Read of reading and function Write of writing should be implemented.

◆ IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL

#define IMP_PERSISTENT_CLASS_FROM_BASE_NEW_DEL (   AppID,
  Class,
  Base 
)
Value:
IMP_PERSISTENT_CLASS_FROM_BASE( AppID, Class, Base ) \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Analog of IMP_PERSISTENT_CLASS_FROM_BASE macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of IMP_PERSISTENT_CLASS_FROM_BASE macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_CLASS_WD_NEW_DEL

#define IMP_PERSISTENT_CLASS_WD_NEW_DEL (   AppID,
  Class 
)
Value:
IMP_PERSISTENT_CLASS_WD( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Analog of IMP_PERSISTENT_CLASS_WD macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of IMP_PERSISTENT_CLASS_WD macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_CLASS

#define IMP_PERSISTENT_CLASS (   AppID,
  Class 
)
Value:
IMP_PERSISTENT_REGISTRATION( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS( Class ); \
IMP_CLASS_DESC_FUNC( AppID, Class )

Implementation of DECLARE_PERSISTENT_CLASS declaration.

Implementation of DECLARE_PERSISTENT_CLASS declaration. Describes the necessary operations for a stream class. It is set into any .cpp file. Class must be inherited from TapeBase. Function Read of reading and function Write of writing should be implemented.

◆ IMP_PERSISTENT_CLASS_NEW_DEL

#define IMP_PERSISTENT_CLASS_NEW_DEL (   AppID,
  Class 
)
Value:
IMP_PERSISTENT_CLASS( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class );
#define IMP_PERSISTENT_CLASS(AppID, Class)
Implementation of DECLARE_PERSISTENT_CLASS declaration.
Definition: io_tape.h:2482

Analog of IMP_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of IMP_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ IMP_PERSISTENT_RO_CLASS_NEW_DEL

#define IMP_PERSISTENT_RO_CLASS_NEW_DEL (   AppID,
  Class 
)
Value:
IMP_PERSISTENT_RO_CLASS( AppID, Class ); \
IMP_PERSISTENT_NEW_DELETE_CLASS_EX( Class )

Analog of IMP_PERSISTENT_RO_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of IMP_PERSISTENT_RO_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_).

◆ DECLARE_PERSISTENT_OPS_B

#define DECLARE_PERSISTENT_OPS_B (   Class)
Value:
friend inline reader & CALL_DECLARATION operator >> ( reader & in, Class & ref ); \
friend inline reader & CALL_DECLARATION operator >> ( reader & in, Class *& ptr ); \
friend inline reader & CALL_DECLARATION operator >> ( reader & in, const Class *& ptr ); \
friend inline writer & CALL_DECLARATION operator << ( writer & out, const Class & ref ); \
friend inline writer & CALL_DECLARATION operator << ( writer & out, const Class * ptr ); \
friend inline writer & CALL_DECLARATION operator << ( writer & out, Class & ref ); \
friend inline writer & CALL_DECLARATION operator << ( writer& out, Class * ptr );
Stream for reading.
Definition: io_tape_define.h:427
Stream for writing.
Definition: io_tape_define.h:579
writer & operator<<(writer &ps, bool i)
Writing bool to the stream.
Definition: io_tape.h:760
reader & operator>>(reader &ps, bool &i)
Reading of bool to the stream.
Definition: io_tape.h:773

Declaration of operators of reading and writing of pointers and references.

Deprecated:

◆ DECLARE_PERSISTENT_RO_OPS

#define DECLARE_PERSISTENT_RO_OPS (   Class)
Value:
friend inline reader & CALL_DECLARATION operator >> ( reader & in, Class & ref ) { \
in.readObject( dynamic_cast<TapeBase *>(&ref) ); \
return in; \
} \
friend inline reader & CALL_DECLARATION operator >> ( reader & in, Class *& ptr ) { \
ptr = dynamic_cast<Class *>( in.readObjectPointer() ); \
return in; \
}
TapeBase * readObject(TapeBase *mem=0)
Read the object.

Operators of reading pointers and references for a class without writing.

Deprecated:

◆ DECLARE_PERSISTENT_RO_FUNCS

#define DECLARE_PERSISTENT_RO_FUNCS (   Class)
Value:
public: \
static void Read( reader & in, Class * obj )

Function of reading for class without writing.

Deprecated:

◆ DECLARE_PERSISTENT_CLASS

#define DECLARE_PERSISTENT_CLASS (   Class)
Value:
DECLARE_PERSISTENT_OPS( Class ); \
DECLARE_PERSISTENT_CTOR( Class ); \
DECLARE_NEW_DELETE_CLASS( Class ); \
DECLARE_CLASS_DESC_FUNC(Class)

Declaration of class Class as a stream one.

Declaration of class Class as a stream one. It is set in the declaration of class in file *.h. Declares operators <<, >> and also functions Read and Write which must be defined in any file *.cpp Class must be inherited from TapeBase. The read constructor must be defined for the class and its solid should be in .cpp file.

◆ DECLARE_PERSISTENT_CLASS_NEW_DEL

#define DECLARE_PERSISTENT_CLASS_NEW_DEL (   Class)
Value:
DECLARE_NEW_DELETE_CLASS_EX( Class )
#define DECLARE_PERSISTENT_CLASS(Class)
Declaration of class Class as a stream one.
Definition: io_tape_define.h:761

Analog of DECLARE_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads.

Analog of DECLARE_PERSISTENT_CLASS macro with support of new/delete operators overloading which provides sequential access to the allocation/deallocation functions from different threads (enabled by defining __OVERLOAD_MEMORY_ALLOCATE_FREE_).

Typedef Documentation

◆ CAST_FUNC

typedef void* CALL_DECLARATION* CAST_FUNC(const TapeBase *)

Template of conversion function.

Template of function of conversion from a pointer to TapeBase to a pointer to the class.

◆ void

typedef void

Template of instance writing function.

Template of instance reading function.

Enumeration Type Documentation

◆ RegistrableRec

Types of objects registration.

Types of stream objects registration.

Enumerator
noRegistrable 

Unregistrable object.

registrable 

Registrable object.

◆ TapeInit

enum TapeInit

The objects initialization types.

Types of stream objects registration.

Enumerator
tapeInit 

By default.

◆ TapePointerType

Methods of writing pointers.

Methods of writing pointers.

Enumerator
tpt_Null 

Null pointer.

tpt_Indexed16 

Pointer index in the registration array (2 bytes).

tpt_Object 

The object solid.

tpt_Indexed8 

Index of pointer in the registration array (1 byte).

tpt_Indexed32 

Pointer index in the registration array (4 bytes).

tpt_Indexed64 

Index of pointer in the registration array (8 byte).

tpt_DetachedObject 

The object solid in separated FileSpace.

tpt_ObjectCatalog 

The object catalog in separated FileSpace.

◆ MbeItemDataType

A type of user data of the model tree node.

A type of user data of the model tree node.

Function Documentation

◆ IsEqualSArrayItems()

bool IsEqualSArrayItems ( const Cluster ,
const Cluster  
)
inline

Compare two clusters.

◆ getMemLen() [1/2]

size_t getMemLen ( const Cluster c,
VERSION   
)
inline

Size of cluster's data.

Size of cluster data in the stream of the specified version.

◆ getMemLen() [2/2]

size_t getMemLen ( const FileSpace s,
VERSION  version 
)
inline

The file data size.

The file space data size in the stream of the specified version.

◆ IsGoodFile()

bool IsGoodFile ( const FileSpace file,
const iobuf_Seq owner 
)
inline

Check the cluster array of the file.

Check array of clusters this file consists of.

◆ operator<<() [1/3]

writer& operator<< ( writer ps,
int64  val 
)
inline

Writing int32 to the stream.

Writing uint32 to the stream. Reading int32 to the stream. Reading uint32 to the stream. Writing int64 to the stream.

◆ GetPackedClassName()

ClassDescriptor GetPackedClassName ( const ClassDescriptor classDescr,
const VersionContainer ver 
)

Get the packed class name from the hash value written to the stream.

Get the packed class name from the hash value written to the stream.

Parameters
[in]classDescr- Hash value wrapper.
[in]ver- The version of the stream in which the hash is written.
Returns
Returns the packed class name.

◆ AddPackedClassNameForVersion()

void AddPackedClassNameForVersion ( const ClassDescriptor newClassName,
const ClassDescriptor oldClassName,
uint  appIndex,
VERSION  lowVersion,
VERSION  highVersion 
)

Add a new mapping of the hash value written to the stream to the packed class name.

Add a new mapping of the hash value written to the stream to the packed class name.

Parameters
[in]newClassName- New class name.
[in]oldClassName- Old class name.
[in]appIndex- The index of the application that the class belongs to.
[in]lowVersion- Version lower bound.
[in]highVersion- Version upper bound.

◆ IsValidStreamClassName()

bool IsValidStreamClassName ( const char *  className,
const MbUuid appID 
)

Diagnostics of collisions of new class name with registered classes.

Diagnostics of collisions of new class name with registered classes.

Parameters
[in]className- The class name.
[in]appID- The application id.
Returns
Whether the class with the specified name is unique if registered with specified application id.

◆ operator<<() [2/3]

writer& c3d::operator<< ( writer out,
const StrHash strHash 
)
inline

Operator of writing hash.

Write operator.

◆ operator>>() [1/2]

reader& c3d::operator>> ( reader in,
c3d::StrHash strHash 
)
inline

Operator of hash reading.

Read operator.

◆ ReadCluster()

void ReadCluster ( reader in,
uint16  clusterSize,
Cluster cl 
)
inline

Read the cluster.

Write the cluster.

◆ operator>>() [2/2]

reader& operator>> ( reader ,
VersionContainer  
)

Operator of version container reading.

Read operator.

◆ operator<<() [3/3]

writer& operator<< ( writer ,
const VersionContainer  
)

Operator of version container writing.

Write operator.