All Classes Namespaces Functions Variables Typedefs Enumerations Pages
Static Public Member Functions | Private Types | Static Private Member Functions | Private Attributes | List of all members
OpenMBV::ObjectFactory Class Reference

#include <objectfactory.h>

Static Public Member Functions

template<class CreateType >
static void registerXMLName (const MBXMLUtils::FQN &name)
 
template<class ContainerType >
static boost::shared_ptr
< ContainerType > 
create (const xercesc::DOMElement *element)
 
template<class CreateType >
static boost::shared_ptr
< CreateType > 
create ()
 
template<class CreateType >
static boost::shared_ptr
< CreateType > 
create (const boost::shared_ptr< CreateType > &t)
 

Private Types

typedef boost::shared_ptr
< Object >(* 
allocateFkt )()
 
typedef std::multimap
< MBXMLUtils::FQN, allocateFkt > 
Map
 
typedef Map::iterator MapIt
 

Static Private Member Functions

static void registerXMLName (const MBXMLUtils::FQN &name, allocateFkt alloc)
 
static ObjectFactoryinstance ()
 
template<class CreateType >
static boost::shared_ptr< Objectallocate ()
 
template<class T >
static void deleter (T *t)
 

Private Attributes

Map registeredType
 

Detailed Description

A object factory. A object facroty which creates any object derived from Object.

Member Function Documentation

template<class ContainerType >
static boost::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.

template<class CreateType >
static boost::shared_ptr<CreateType> OpenMBV::ObjectFactory::create ( )
inlinestatic

Create an empty object of type CreateType.

template<class CreateType >
static boost::shared_ptr<CreateType> OpenMBV::ObjectFactory::create ( const boost::shared_ptr< CreateType > &  t)
inlinestatic

Return a copy of t.

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:

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML