chrono::ChClassRegistration< t > Class Template Reference

Description

template<class t>
class chrono::ChClassRegistration< t >

Macro to create a ChDetect_ArchiveInConstructor.

Macro to create a ChDetect_ArchiveOutConstructor that can be used in templates, to select which specialized template to use Macro to create a ChDetect_ArchiveOut that can be used in templates, to select which specialized template to use Macro to create a ChDetect_ArchiveIn that can be used in templates, to select which specialized template to use Macro to create a ChDetect_ArchiveContainerName that can be used in templates, to select which specialized template to use Class for registration data of classes whose objects can be created via a class factory.

#include <ChClassFactory.h>

Inheritance diagram for chrono::ChClassRegistration< t >:
Collaboration diagram for chrono::ChClassRegistration< t >:

Public Member Functions

 ChClassRegistration (const char *mtag_name)
 Creator (adds this to the global list of ChClassRegistration<t> objects).
 
virtual ~ChClassRegistration ()
 Destructor (removes this from the global list of ChClassRegistration<t> objects).
 
virtual void * create () override
 The signature of create method for derived classes. Calls new().
 
virtual void * archive_in_create (ChArchiveIn &archive_in) override
 Call the ArchiveInConstructor(ChArchiveIn&) function if available (deserializes constructor params and return new()), otherwise just call new().
 
virtual void archive_in (ChArchiveIn &archive_in, void *ptr) override
 Call the ArchiveIn(ChArchiveIn&) function if available, populating an already existing object.
 
virtual void archive_out_constructor (ChArchiveOut &archive_out, void *ptr) override
 
virtual void archive_out (ChArchiveOut &archive_out, void *ptr) override
 
virtual std::type_index get_type_index () override
 Get the type_index of the class.
 
virtual std::string & get_tag_name () override
 Get the name used for registering.
 
virtual bool is_polymorphic () override
 Tells if the class is polymorphic.
 
virtual bool is_default_constructible () override
 Tells if the class is default constructible.
 
virtual bool is_abstract () override
 Tells if the class is abstract.
 
virtual bool has_ArchiveInConstructor () override
 Tells if it implements the function.
 
virtual bool has_ArchiveIn () override
 Tells if it implements the function.
 
virtual bool has_ArchiveOutConstructor () override
 Tells if it implements the function.
 
virtual bool has_ArchiveOut () override
 Tells if it implements the function.
 

Protected Member Functions

template<class Tc = t>
enable_if< std::is_default_constructible< Tc >::value, void * >::type _create ()
 
template<class Tc = t>
enable_if<!std::is_default_constructible< Tc >::value, void * >::type _create ()
 
template<class Tc = t>
enable_if< ChDetect_ArchiveInConstructor< Tc >::value, void * >::type _archive_in_create (ChArchiveIn &archive_in)
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveInConstructor< Tc >::value, void * >::type _archive_in_create (ChArchiveIn &archive_in)
 
template<class Tc = t>
enable_if< ChDetect_ArchiveIn< Tc >::value, void >::type _archive_in (ChArchiveIn &archive_in, void *ptr)
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveIn< Tc >::value, void >::type _archive_in (ChArchiveIn &archive_in, void *ptr)
 
template<class Tc = t>
enable_if< ChDetect_ArchiveOut< Tc >::value, void >::type _archive_out (ChArchiveOut &archive_out, void *ptr)
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveOut< Tc >::value, void >::type _archive_out (ChArchiveOut &archive_out, void *ptr)
 
template<class Tc = t>
enable_if< ChDetect_ArchiveOutConstructor< Tc >::value, void >::type _archive_out_constructor (ChArchiveOut &archive_out, void *ptr)
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveOutConstructor< Tc >::value, void >::type _archive_out_constructor (ChArchiveOut &archive_out, void *ptr)
 
template<class Tc = t>
enable_if< ChDetect_ArchiveInConstructor< Tc >::value, bool >::type _has_ArchiveInConstructor ()
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveInConstructor< Tc >::value, bool >::type _has_ArchiveInConstructor ()
 
template<class Tc = t>
enable_if< ChDetect_ArchiveIn< Tc >::value, bool >::type _has_ArchiveIn ()
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveIn< Tc >::value, bool >::type _has_ArchiveIn ()
 
template<class Tc = t>
enable_if< ChDetect_ArchiveOutConstructor< Tc >::value, bool >::type _has_ArchiveOutConstructor ()
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveOutConstructor< Tc >::value, bool >::type _has_ArchiveOutConstructor ()
 
template<class Tc = t>
enable_if< ChDetect_ArchiveOut< Tc >::value, bool >::type _has_ArchiveOut ()
 
template<class Tc = t>
enable_if<!ChDetect_ArchiveOut< Tc >::value, bool >::type _has_ArchiveOut ()
 
std::string & _get_tag_name ()
 

Protected Attributes

std::string m_sTagName
 Name of the class for dynamic creation.
 

The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/core/ChClassFactory.h