Open CASCADE Technology 6.6.0
Data Structures | Defines
TObj_Persistence.hxx File Reference
#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 Documentation

#define _TOBJOCAF_PERSISTENCE_ACCESS_
#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_;
#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);                             \
  }
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines