Open CASCADE Technology 7.8.0
Data Structures | Macros
TObj_Persistence.hxx File Reference
#include <TObj_Container.hxx>

Data Structures

class  TObj_Persistence
 

Macros

#define _TOBJOCAF_PERSISTENCE_ACCESS_
 Declare subclass and methods of the class inherited from TObj_Object necessary for implementation of persistence This declaration should be put inside class declaration, under 'protected' modifier.
 
#define DECLARE_TOBJOCAF_PERSISTENCE(name, ancestor)
 
#define IMPLEMENT_TOBJOCAF_PERSISTENCE(name)
 Implement mechanism for registration the type for persistence This should not be used for abstract classes (while DECLARE should)
 

Macro Definition Documentation

◆ _TOBJOCAF_PERSISTENCE_ACCESS_

#define _TOBJOCAF_PERSISTENCE_ACCESS_

Declare subclass and methods of the class inherited from TObj_Object necessary for implementation of persistence This declaration should be put inside class declaration, under 'protected' modifier.

◆ DECLARE_TOBJOCAF_PERSISTENCE

#define DECLARE_TOBJOCAF_PERSISTENCE (   name,
  ancestor 
)
Value:
name (const TObj_Persistence *p, \
{ initFields(); } /* give the object a chance to initialize its fields */ \
\
/* Creates an object of a proper type */ \
/* First argument is used just to avoid possible conflict with other constructors */ \
/* Friend private class of name, is a tool providing persistence */ \
public: \
Persistence_ () : TObj_Persistence(#name) {} /* register the tool */ \
virtual Handle(TObj_Object) New (const TDF_Label& aLabel) const; \
/* Creates an object of a proper type */ \
}; \
friend class Persistence_; \
static Persistence_ myPersistence_; /* Static field implementing persistsnce tool */
#define Handle(Class)
Define Handle() macro.
Definition Standard_Handle.hxx:399
Definition NCollection_UBTree.hxx:64
NCollection_UBTree()
Definition NCollection_UBTree.hxx:243
This class provides basic operations to define a label in a data structure. A label is a feature in t...
Definition TDF_Label.hxx:56
Basis class for transient objects in OCAF-based models.
Definition TObj_Object.hxx:44
Definition TObj_Persistence.hxx:36

◆ IMPLEMENT_TOBJOCAF_PERSISTENCE

#define IMPLEMENT_TOBJOCAF_PERSISTENCE (   name)
Value:
name::Persistence_ name::myPersistence_; \
Handle(TObj_Object) name::Persistence_::New (const TDF_Label& aLabel) const { \
return new name((const TObj_Persistence*)0, aLabel); \
}

Implement mechanism for registration the type for persistence This should not be used for abstract classes (while DECLARE should)