Bayeux  3.4.1
Core Foundation library for SuperNEMO
Macros
ocd_macros.h File Reference
#include <datatools/detail/ocd_utils.h>

Go to the source code of this file.

Macros

#define DOCD_CLASS_DECLARATION(ClassName)
 Declare the OCD support for a given class. More...
 
#define DOCD_CLASS_IMPLEMENT_LOAD_BEGIN(ClassType, OcdId)
 Open the OCD implementation block. More...
 
#define DOCD_CLASS_IMPLEMENT_LOAD_END()   }}}} \
 Close the OCD implementation block. More...
 
#define DOCD_CLASS_SYSTEM_REGISTRATION(ClassType, ClassId)
 Instantiate a specialization of the OCD system factory register manager for a given class. More...
 
#define DOCD_GET_SYSTEM_REGISTRATION()   ::datatools::detail::ocd::ocd_registration::get_system_registration() \
 

Macro Definition Documentation

◆ DOCD_CLASS_DECLARATION

#define DOCD_CLASS_DECLARATION (   ClassName)
Value:
namespace datatools { \
namespace detail { \
namespace ocd { \
template<> \
void implement_load< ClassName >(::datatools::object_configuration_description & ocd_); \
template<> struct loader< ClassName > { \
static const bool value = true; \
struct load { \
void operator()(::datatools::object_configuration_description & ocd_) const { \
implement_load< ClassName >(ocd_); \
} \
}; \
}; \
}}} \
void load(Archive &a_ar, geomtools::vector_3d &v_, const unsigned int a_version)
An object that describes the way an object of a given class can be configured through properties.
Definition: object_configuration_description.h:234
The Bayeux/datatools library top-level namespace.
Definition: algo.h:13

Declare the OCD support for a given class.

  • ClassName the class full name (including namespaces)

◆ DOCD_CLASS_IMPLEMENT_LOAD_BEGIN

#define DOCD_CLASS_IMPLEMENT_LOAD_BEGIN (   ClassType,
  OcdId 
)
Value:
namespace datatools { \
namespace detail { \
namespace ocd { \
template<> void implement_load< ClassType >(::datatools::object_configuration_description & OcdId) { \
An object that describes the way an object of a given class can be configured through properties.
Definition: object_configuration_description.h:234
The Bayeux/datatools library top-level namespace.
Definition: algo.h:13

Open the OCD implementation block.

  • ClassType the class type
  • OcdId the OCD data structure to be filled

◆ DOCD_CLASS_IMPLEMENT_LOAD_END

#define DOCD_CLASS_IMPLEMENT_LOAD_END ( )    }}}} \

Close the OCD implementation block.

◆ DOCD_CLASS_SYSTEM_REGISTRATION

#define DOCD_CLASS_SYSTEM_REGISTRATION (   ClassType,
  ClassId 
)
Value:
namespace datatools { \
namespace detail { \
namespace ocd { \
template <> \
struct _ocd_sfr< ClassType > { \
static boost::scoped_ptr<base_system_factory_registrar> reg_; \
}; \
boost::scoped_ptr<base_system_factory_registrar> \
_ocd_sfr< ClassType >::reg_(new system_factory_registrar< ClassType >(ClassId)); \
}}} \
The Bayeux/datatools library top-level namespace.
Definition: algo.h:13

Instantiate a specialization of the OCD system factory register manager for a given class.

  • ClassType the class type
  • ClassId the class registration Id (unique string)

◆ DOCD_GET_SYSTEM_REGISTRATION

#define DOCD_GET_SYSTEM_REGISTRATION ( )    ::datatools::detail::ocd::ocd_registration::get_system_registration() \