|
Open CASCADE Technology
6.5.4
|
#include <TObj_Container.hxx>Data Structures | |
| class | TObj_Persistence |
Defines | |
| #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) | |
| #define _TOBJOCAF_PERSISTENCE_ACCESS_ |
| #define DECLARE_TOBJOCAF_PERSISTENCE | ( | name, | |
| ancestor | |||
| ) |
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 IMPLEMENT_TOBJOCAF_PERSISTENCE | ( | name | ) |
name::Persistence_ name::myPersistence_; \ Handle(TObj_Object) name::Persistence_::New (const TDF_Label& aLabel) const { \ return new name((const TObj_Persistence*)0, aLabel); \ }
1.8.0