Bayeux
3.4.1
Core Foundation library for SuperNEMO
|
#include <string>
#include <typeinfo>
#include <memory>
#include <boost/serialization/access.hpp>
#include <boost/type_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/has_xxx.hpp>
#include <datatools/datatools_config.h>
#include <datatools/factory_macros.h>
#include <datatools/serialization_macros.h>
#include <datatools/utils.h>
#include <datatools/reflection_interface.h>
Go to the source code of this file.
Classes | |
class | datatools::i_serializable |
Base abstract class of all serializable (and possibly introspectable) classes. More... | |
Namespaces | |
datatools | |
The Bayeux/datatools library top-level namespace. | |
Functions | |
template<class T > | |
const std::string & | datatools::serial_tag () |
template<class T > | |
const std::string & | datatools::backward_serial_tag (int i=0) |
template<typename T > | |
bool | datatools::check_serial_tag (const std::string stag_, const std::string alt_tag_="", typename boost::disable_if< has_bsts< T > >::type *dummy_=0) |
template<typename T > | |
bool | datatools::check_serial_tag (const std::string stag_, const std::string alt_tag_="", typename boost::enable_if< has_bsts< T > >::type *dummy_=0) |
#define DATATOOLS_SERIALIZATION_BACKWARD_SERIAL_TAG_SUPPORT | ( | ) |
Intrusive macro invoked from the class declaration to declare backward compatibility serial tag support : Example:
#define DATATOOLS_SERIALIZATION_DECLARATION | ( | ) |
Intrusive macro invoked from the class declaration to activate basic serialization support for the class :
Example:
#define DATATOOLS_SERIALIZATION_DECLARATION_ADVANCED | ( | ClassName | ) |
Intrusive macro invoked from the class declaration to activate advanced serialization support for the class :
ClassName | The class name (without namespace) |
Example:
#define DATATOOLS_SERIALIZATION_EXT_BACKWARD_SERIAL_TAG_DECLARATION | ( | ClassName | ) |
#define DATATOOLS_SERIALIZATION_EXT_BACKWARD_SERIAL_TAG_IMPLEMENTATION | ( | ClassName, | |
ClassBackwardSerialTag | |||
) |
#define DATATOOLS_SERIALIZATION_EXT_SERIAL_TAG_DECLARATION | ( | ClassName | ) |
#define DATATOOLS_SERIALIZATION_EXT_SERIAL_TAG_IMPLEMENTATION | ( | ClassName, | |
ClassSerialTag | |||
) |
#define DATATOOLS_SERIALIZATION_FACTORY_IMPLEMENTATION | ( | ClassName, | |
ClassSerialTag | |||
) | DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_IMPLEMENTATION(::datatools::i_serializable,ClassName,ClassSerialTag) \ |
Macro invoked to implement the automatic registration the class in a dedicated factory :
ClassName | The class name (possibly with its full namespace path prefix by ::) |
ClassSerialTag | The unique class ID used by the factory (including full namespace prefix) Example: |
#define DATATOOLS_SERIALIZATION_FACTORY_INTERFACE | ( | ClassName | ) | DATATOOLS_FACTORY_SYSTEM_AUTO_REGISTRATION_INTERFACE(::datatools::i_serializable,ClassName) \ |
Intrusive macro invoked from the class declaration to declare the automatic registration the class in a dedicated factory :
ClassName | The class name (possibly with its full namespace path prefix by ::) Example: |
#define DATATOOLS_SERIALIZATION_I_SERIALIZABLE_BASE_OBJECT_NVP |
Macro invoked to specify the inheritance to the datatools::i_serializable within the serialization method :
Example:
#define DATATOOLS_SERIALIZATION_IMPLEMENTATION | ( | ClassName, | |
ClassSerialTag | |||
) | DATATOOLS_SERIALIZATION_SERIAL_TAG_IMPLEMENTATION(ClassName,ClassSerialTag) \ |
Intrusive macro invoked to implement basic serialization support for the class :
ClassName | The class name (preferably with full namespace path prefixed by ::) |
ClassSerialTag | The unique class serialization ID (tag) |
Example:
#define DATATOOLS_SERIALIZATION_IMPLEMENTATION_ADVANCED | ( | ClassName, | |
ClassSerialTag | |||
) |
Intrusive macro invoked to implement advanced serialization support for the class :
ClassName | The class name (preferably with full namespace path prefixed by ::) |
ClassSerialTag | The unique class serialization ID (tag) |
Example:
#define DATATOOLS_SERIALIZATION_OLD_I_SERIALIZABLE_BASE_OBJECT_NVP |
Macro invoked to specify the inheritance to the datatools::i_serializable within the serialization method (this is the original version, now obsolete) :
Example:
#define DATATOOLS_SERIALIZATION_SERIAL_TAG_DECLARATION | ( | ) |
Intrusive macro invoked from the class declaration to declare serial tag support : Example:
#define DATATOOLS_SERIALIZATION_SERIAL_TAG_IMPLEMENTATION | ( | ClassName, | |
ClassSerialTag | |||
) |
Macro invoked to implement serial tag support : Example:
#define DATATOOLS_SERIALIZATION_SERIALIZE_IMPLEMENT_HEADER | ( | ClassName, | |
ArchiveId, | |||
VersionId | |||
) |
Shortcut macro to generate the proper prototype of the Boost serialization method :
ClassName | The class name (without |
ArchiveId | The archive identifier |
VersionId | The version version number Example: namespace Bar { { DATATOOLS_SERIALIZATION_DECLARATION_BASIC() }; } namespace Bar { DATATOOLS_SERIALIZATION_SERIALIZE_IMPLEMENT_HEADER (Foo, ar, version) { ar & ...; } } |