Open CASCADE Technology  7.4.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. More...
 
#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) More...
 

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:407
Definition: TObj_Persistence.hxx:35
Basis class for transient objects in OCAF-based models.
Definition: TObj_Object.hxx:42
This class provides basic operations to define a label in a data structure. A label is a feature in t...
Definition: TDF_Label.hxx:62

◆ 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); \
}
Definition: TObj_Persistence.hxx:35
Basis class for transient objects in OCAF-based models.
Definition: TObj_Object.hxx:42
This class provides basic operations to define a label in a data structure. A label is a feature in t...
Definition: TDF_Label.hxx:62

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