12 template <
typename BaseClassType,
typename ClassType>
15 return new ClassType();
18 template <
typename BaseClassType,
typename UniqueIdType>
22 typedef BaseClassType* (*CreateObjectFunc)();
25 typedef typename std::map<UniqueIdType, CreateObjectFunc>::const_iterator
ConstIterator;
26 typedef typename std::map<UniqueIdType, CreateObjectFunc>::iterator
Iterator;
28 template <
typename ClassType>
41 BaseClassType*
Create(UniqueIdType unique_id)
48 return ((*iter).second)();
67 virtual void* Produce(
void)
const = 0;
82 bool CanProduce(
const char* sClassName)
const;
88 void* Produce(
const char* sClassName)
const;
104 static void Destruct(
void);
106 const char* ProduceScript(
const char* sScriptName)
const;
140 return (
void*)mScript;
std::map< UniqueIdType, CreateObjectFunc >::const_iterator ConstIterator
Definition: Factory.h:25
Abstract base class of all producers.
Definition: Factory.h:61
virtual ~AbstractProducer()
Definition: Factory.h:65
Definition: Factory.h:126
bool Unregister(UniqueIdType unique_id)
Definition: Factory.h:39
Core::PropertyText name
Definition: CoreDocument.h:167
ScriptProducer(const char *name, const char *script)
Constructor.
Definition: Factory.h:130
BaseClassType * CreateObject()
Definition: Factory.h:13
Iterator GetBegin()
Definition: Factory.h:52
Iterator GetEnd()
Definition: Factory.h:54
ConstIterator GetBegin() const
Definition: Factory.h:51
std::map< const std::string, AbstractProducer * > _mpcProducers
Definition: Factory.h:89
AbstractProducer()
Definition: Factory.h:64
ConstIterator GetEnd() const
Definition: Factory.h:53
Factory2(void)
construction
Definition: Factory.h:91
std::map< UniqueIdType, CreateObjectFunc >::iterator Iterator
Definition: Factory.h:26
void AddProducer(const char *sClassName, AbstractProducer *pcProducer)
Adds a new producer instance.
Definition: AbstractConstraint.h:6
std::map< UniqueIdType, CreateObjectFunc > m_object_creator
Definition: Factory.h:57
BaseClassType * Create(UniqueIdType unique_id)
Definition: Factory.h:41
virtual void * Produce(void) const
Produce an instance.
Definition: Factory.h:138
Definition: AbstractXMLReader.h:5
virtual ~ScriptProducer(void)
Definition: Factory.h:135
bool Register(UniqueIdType unique_id)
Definition: Factory.h:29
static ScriptFactorySingleton & Instance(void)
Definition: Factory.h:100
ScriptFactorySingleton & ScriptFactory(void)
Definition: Factory.h:115