Open CASCADE Technology 7.9.0
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, const TDF_Label& aLabel) \
: ancestor(p, aLabel) \
{ \
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 */ \
_TOBJOCAF_PERSISTENCE_ACCESS_ \
class Persistence_ : public TObj_Persistence \
{ \
/* 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:403
This class provides basic operations to define a label in a data structure. A label is a feature in t...
Definition TDF_Label.hxx:55
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); \
}
Basis class for transient objects in OCAF-based models.
Definition TObj_Object.hxx:44

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