Go to the documentation of this file.
8 template <
typename BaseClassType,
typename ClassType>
11 return new ClassType();
14 template <
typename BaseClassType,
typename UniqueIdType>
18 typedef BaseClassType* (*CreateObjectFunc)();
21 typedef typename std::map<UniqueIdType, CreateObjectFunc>::const_iterator
ConstIterator;
22 typedef typename std::map<UniqueIdType, CreateObjectFunc>::iterator
Iterator;
24 template <
typename ClassType>
37 BaseClassType*
Create(UniqueIdType unique_id)
44 return ((*iter).second)();
83 void*
Produce(
const char* sClassName)
const;
132 return (
void*)mScript;
virtual void * Produce() const
Produce an instance.
Definition: Factory.h:130
bool Register(UniqueIdType unique_id)
Definition: Factory.h:25
bool Unregister(UniqueIdType unique_id)
Definition: Factory.h:35
void * Produce(const char *sClassName) const
produce a class with the given name
Abstract base class of all producers.
Definition: Factory.h:58
Iterator GetBegin()
Definition: Factory.h:48
Factory2(void)
construction
Definition: Factory.h:86
static ScriptFactorySingleton & Instance(void)
ScriptProducer(const char *name, const char *script)
Constructor.
Definition: Factory.h:124
ConstIterator GetBegin() const
Definition: Factory.h:47
ConstIterator GetEnd() const
Definition: Factory.h:49
Iterator GetEnd()
Definition: Factory.h:50
const char * ProduceScript(const char *sScriptName) const
std::list< std::string > CanProduce() const
returns a list of all registered producer
std::map< UniqueIdType, CreateObjectFunc > m_object_creator
Definition: Factory.h:53
bool CanProduce(const char *sClassName) const
returns true if there is a producer for this class registered
Definition: Factory.h:121
std::map< const std::string, AbstractProducer * > _mpcProducers
Definition: Factory.h:84
void AddProducer(const char *sClassName, AbstractProducer *pcProducer)
Adds a new producer instance.
std::map< UniqueIdType, CreateObjectFunc >::iterator Iterator
Definition: Factory.h:22
virtual void * Produce() const =0
overwritten by a concrete producer to produce the needed object
BaseClassType * Create(UniqueIdType unique_id)
Definition: Factory.h:37
virtual ~AbstractProducer()=default
BaseClassType * CreateObject()
Definition: Factory.h:9
ScriptFactorySingleton & ScriptFactory()
Definition: Factory.h:109
virtual ~Factory2()
destruction
Definition: AbstractXMLReader.h:5
std::map< UniqueIdType, CreateObjectFunc >::const_iterator ConstIterator
Definition: Factory.h:21