11 template <
typename BaseClassType,
typename ClassType>
14 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;
29 template <
typename ClassType>
42 BaseClassType*
Create(UniqueIdType unique_id)
49 return ((*iter).second)();
69 #endif // __FACTORY_H__ std::map< UniqueIdType, CreateObjectFunc >::const_iterator ConstIterator
Definition: Factory.h:25
bool Unregister(UniqueIdType unique_id)
Definition: Factory.h:40
BaseClassType * CreateObject()
Definition: Factory.h:12
Iterator GetBegin()
Definition: Factory.h:54
Iterator GetEnd()
Definition: Factory.h:58
ConstIterator GetBegin() const
Definition: Factory.h:52
ConstIterator GetEnd() const
Definition: Factory.h:56
std::map< UniqueIdType, CreateObjectFunc >::iterator Iterator
Definition: Factory.h:26
std::map< UniqueIdType, CreateObjectFunc > m_object_creator
Definition: Factory.h:61
BaseClassType * Create(UniqueIdType unique_id)
Definition: Factory.h:42
Definition: AbstractXMLReader.h:8
bool Register(UniqueIdType unique_id)
Definition: Factory.h:30