35 #ifndef OPENMS_CONCEPT_FACTORY_H 
   36 #define OPENMS_CONCEPT_FACTORY_H 
   61   template <
typename FactoryProduct>
 
   69     typedef FactoryProduct * (*FunctionType)();
 
   70     typedef std::map<String, FunctionType> 
Map;
 
   99           FactoryProduct::registerChildren();
 
  118         return (*(it->second))();
 
  122         throw Exception::InvalidValue(__FILE__, __LINE__, __PRETTY_FUNCTION__, 
"This FactoryProduct is not registered!", name.c_str());
 
  150       std::vector<String> list;
 
  153         list.push_back(it->first);
 
  164   template <
typename FactoryProduct>
 
  168 #endif //OPENMS_CONCEPT_FACTORY_H 
static bool isRegistered(String name)
Returns if a factory is registered. 
Definition: SingletonRegistry.h:109
A more convenient string class. 
Definition: String.h:56
Factory< FactoryProduct > FactoryType
Definition: Factory.h:72
static Factory * instance_()
singleton access to Factory 
Definition: Factory.h:83
FactoryProduct *(* FunctionType)()
Function signature of creator function. 
Definition: Factory.h:69
Returns FactoryProduct* based on the name of the desired concrete FactoryProduct. ...
Definition: Factory.h:62
static void registerProduct(const String &name, const FunctionType creator)
register new concrete FactoryProduct 
Definition: Factory.h:132
static bool isRegistered(const String &name)
Returns if a factory product is registered. 
Definition: Factory.h:138
static Factory * instance_ptr_
Definition: Factory.h:161
static FactoryProduct * create(const String &name)
return FactoryProduct according to unique identifier name 
Definition: Factory.h:113
Factory()
Constructor. 
Definition: Factory.h:78
virtual ~Factory()
Destructor. 
Definition: Factory.h:75
Base class for Factory<T> 
Definition: FactoryBase.h:49
static FactoryBase * getFactory(const String &name)
return DefaultParamHandler according to unique identifier name 
Definition: SingletonRegistry.h:84
Invalid value exception. 
Definition: Exception.h:336
static std::vector< String > registeredProducts()
Returns a list of registered products. 
Definition: Factory.h:148
friend class singletonsNeedNoFriends
Definition: Factory.h:65
Map inventory_
Definition: Factory.h:160
Map::const_iterator MapIterator
Definition: Factory.h:71
std::map< String, FunctionType > Map
Definition: Factory.h:70
static void registerFactory(const String &name, FactoryBase *instance)
register new concrete Factory 
Definition: SingletonRegistry.h:103