#include <objectfactory.h>
Static Public Member Functions | |
template<class ContainerType > | |
static ContainerType * | createAndInit (const xercesc::DOMElement *element) |
Private Types | |
typedef std::pair< const AllocateBase *, const DeallocateBase * > | AllocDeallocPair |
typedef std::vector < AllocDeallocPair > | AllocDeallocVector |
typedef AllocDeallocVector::iterator | AllocDeallocVectorIt |
typedef std::map < MBXMLUtils::FQN, AllocDeallocVector > | NameMap |
typedef NameMap::iterator | NameMapIt |
Static Private Member Functions | |
static ObjectFactory & | instance () |
Private Attributes | |
NameMap | registeredType |
Friends | |
void | registerClass_internal (const MBXMLUtils::FQN &name, const AllocateBase *alloc, const DeallocateBase *dealloc) |
void | deregisterClass_internal (const MBXMLUtils::FQN &name, const AllocateBase *alloc) |
A object factory. A object factory which creates any object derived from fmatvec::Atom.
|
inlinestatic |
Create and initialize 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 or no object can be create without errors. This function returns a new object or a singleton object dependent on the registration of the created object.