#include <objectfactory.h>
|
template<class CreateType > |
static void | registerXMLName (const MBXMLUtils::FQN &name) |
|
template<class ContainerType > |
static std::shared_ptr< ContainerType > | create (const xercesc::DOMElement *element) |
|
template<class CreateType > |
static std::shared_ptr< CreateType > | create () |
|
template<class ContainerType > |
static std::shared_ptr< ContainerType > | create (const std::shared_ptr< ContainerType > &t) |
|
static void | addErrorMsg (const std::string &msg) |
|
static std::string | getAndClearErrorMsg () |
|
|
using | DefaultCTor = std::shared_ptr< Object >(*)() |
|
using | CopyCTor = std::shared_ptr< Object >(*)(const std::shared_ptr< Object > &) |
|
using | MapName = std::multimap< MBXMLUtils::FQN, DefaultCTor > |
|
using | MapNameIt = typename MapName::iterator |
|
using | MapType = std::map< std::type_index, CopyCTor > |
|
using | MapTypeIt = typename MapType::iterator |
|
|
static void | registerXMLNamePrivate (const MBXMLUtils::FQN &name, DefaultCTor alloc) |
|
template<class CreateType > |
static void | registerTypePrivate (CopyCTor alloc) |
|
static ObjectFactory & | instance () |
|
template<class CreateType > |
static std::shared_ptr< Object > | defaultCTor () |
|
template<class CreateType > |
static std::shared_ptr< Object > | copyCTor (const std::shared_ptr< Object > &t) |
|
template<class T > |
static void | deleter (T *t) |
|
|
MapName | registeredName |
|
MapType | registeredType |
|
|
static std::string | errorMsg |
|
A object factory. A object facroty which creates any object derived from Object.
◆ create() [1/3]
template<class CreateType >
static std::shared_ptr< CreateType > OpenMBV::ObjectFactory::create |
( |
| ) |
|
|
inlinestatic |
Create an empty object of type CreateType.
◆ create() [2/3]
template<class ContainerType >
static std::shared_ptr< ContainerType > OpenMBV::ObjectFactory::create |
( |
const std::shared_ptr< ContainerType > & |
t | ) |
|
|
inlinestatic |
Create a copy object of t and return a pointer of type ContainerType. Throws if the created object is not of type ContainerType. This function returns a new object dependent on the registration of the created object.
◆ create() [3/3]
template<class ContainerType >
static std::shared_ptr< ContainerType > OpenMBV::ObjectFactory::create |
( |
const xercesc::DOMElement * |
element | ) |
|
|
inlinestatic |
Create an object corresponding to the XML element element and return a pointer of type ContainerType. Throws if the created object is not of type ContainerType. This function returns a new object dependent on the registration of the created object.
◆ registerXMLName()
template<class CreateType >
static void OpenMBV::ObjectFactory::registerXMLName |
( |
const MBXMLUtils::FQN & |
name | ) |
|
|
inlinestatic |
Register the class CreateType which the XML element name name by the object factory. You should not use this function directly but see also the macro OPENMBV_OBJECTFACTORY_REGISTERXMLNAME.
The documentation for this class was generated from the following files:
- /mbsim-env/openmbv/openmbvcppinterface/openmbvcppinterface/objectfactory.h
- /mbsim-env/openmbv/openmbvcppinterface/openmbvcppinterface/objectfactory.cc