Cantera
2.5.1
|
Factory class that supports registering functions to create objects. More...
#include <FactoryBase.h>
Public Member Functions | |
T * | create (const std::string &name, Args... args) |
Create an object using the object construction function corresponding to "name" and the provided constructor arguments. More... | |
void | reg (const std::string &name, std::function< T *(Args...)> f) |
Register a new object construction function. More... | |
void | addAlias (const std::string &original, const std::string &alias) |
Add an alias for an existing registered type. More... | |
std::string | canonicalize (const std::string &name) |
Get the canonical name registered for a type. More... | |
bool | exists (const std::string &name) const |
Returns true if name is registered with this factory. More... | |
Public Member Functions inherited from FactoryBase | |
virtual | ~FactoryBase () |
destructor More... | |
Protected Member Functions | |
void | addDeprecatedAlias (const std::string &original, const std::string &alias) |
Add a deprecated alias for an existing registered type. More... | |
Protected Member Functions inherited from FactoryBase | |
FactoryBase () | |
Constructor. More... | |
virtual void | deleteFactory ()=0 |
Virtual abstract function that deletes the factory. More... | |
Private Attributes | |
std::unordered_map< std::string, std::function< T *(Args...)> > | m_creators |
std::unordered_map< std::string, std::string > | m_synonyms |
Map of synonyms to canonical names. More... | |
std::unordered_map< std::string, std::string > | m_deprecated_names |
Map of deprecated synonyms to canonical names. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from FactoryBase | |
static void | deleteFactories () |
static function that deletes all factories in the internal registry maintained in a static variable More... | |
Factory class that supports registering functions to create objects.
Template arguments for the class are the base type created by the factory, followed by the types of any arguments which need to be passed to the functions used to create objects, e.g. arguments to the constructor.
Definition at line 71 of file FactoryBase.h.
|
inline |
Create an object using the object construction function corresponding to "name" and the provided constructor arguments.
Definition at line 77 of file FactoryBase.h.
Referenced by Cantera::newThermoPhase().
|
inline |
Register a new object construction function.
Definition at line 82 of file FactoryBase.h.
|
inline |
Add an alias for an existing registered type.
Definition at line 87 of file FactoryBase.h.
References Factory< T, Args >::m_synonyms.
|
inline |
Get the canonical name registered for a type.
Definition at line 96 of file FactoryBase.h.
References Factory< T, Args >::m_deprecated_names, Factory< T, Args >::m_synonyms, and Cantera::warn_deprecated().
|
inline |
Returns true if name
is registered with this factory.
Definition at line 111 of file FactoryBase.h.
References Factory< T, Args >::m_synonyms.
|
inlineprotected |
Add a deprecated alias for an existing registered type.
Definition at line 117 of file FactoryBase.h.
References Factory< T, Args >::m_deprecated_names.
|
private |
Map of synonyms to canonical names.
Definition at line 130 of file FactoryBase.h.
Referenced by Factory< T, Args >::addAlias(), Factory< T, Args >::canonicalize(), and Factory< T, Args >::exists().
|
private |
Map of deprecated synonyms to canonical names.
Use of these names will show a deprecation warning.
Definition at line 134 of file FactoryBase.h.
Referenced by Factory< T, Args >::addDeprecatedAlias(), and Factory< T, Args >::canonicalize().