59 template <
typename FactoryProduct>
67 typedef FactoryProduct * (*FunctionType)();
68 typedef std::map<String, FunctionType>
Map;
97 FactoryProduct::registerChildren();
116 return (*(it->second))();
120 throw Exception::InvalidValue(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,
"This FactoryProduct is not registered!", name.c_str());
148 std::vector<String> list;
151 list.push_back(it->first);
162 template <
typename FactoryProduct>
static bool isRegistered(String name)
Returns if a factory is registered.
Definition: SingletonRegistry.h:107
A more convenient string class.
Definition: String.h:57
Factory< FactoryProduct > FactoryType
Definition: Factory.h:70
static Factory * instance_()
singleton access to Factory
Definition: Factory.h:81
FactoryProduct *(* FunctionType)()
Function signature of creator function.
Definition: Factory.h:67
Returns FactoryProduct* based on the name of the desired concrete FactoryProduct. ...
Definition: Factory.h:60
static void registerProduct(const String &name, const FunctionType creator)
register new concrete FactoryProduct
Definition: Factory.h:130
static bool isRegistered(const String &name)
Returns if a factory product is registered.
Definition: Factory.h:136
static Factory * instance_ptr_
Definition: Factory.h:159
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:46
~Factory() override
Destructor.
Definition: Factory.h:73
static FactoryProduct * create(const String &name)
return FactoryProduct according to unique identifier name
Definition: Factory.h:111
Factory()
Constructor.
Definition: Factory.h:76
Base class for Factory<T>
Definition: FactoryBase.h:48
static FactoryBase * getFactory(const String &name)
return DefaultParamHandler according to unique identifier name
Definition: SingletonRegistry.h:82
Invalid value exception.
Definition: Exception.h:335
static std::vector< String > registeredProducts()
Returns a list of registered products.
Definition: Factory.h:146
friend class singletonsNeedNoFriends
Definition: Factory.h:63
Map inventory_
Definition: Factory.h:158
Map::const_iterator MapIterator
Definition: Factory.h:69
std::map< String, FunctionType > Map
Definition: Factory.h:68
static void registerFactory(const String &name, FactoryBase *instance)
register new concrete Factory
Definition: SingletonRegistry.h:101