Factory class to create domain objects. More...
#include <DomainFactory.h>
Factory class to create domain objects.
This class is mainly used via the newDomain() function, for example:
Definition at line 22 of file DomainFactory.h.
Public Member Functions | |
void | deleteFactory () override |
Virtual abstract function that deletes the factory. | |
Public Member Functions inherited from Factory< Domain1D, shared_ptr< Solution >, const string & > | |
Domain1D * | create (const string &name, Args... args) |
Create an object using the object construction function corresponding to "name" and the provided constructor arguments. | |
void | reg (const string &name, function< Domain1D *(Args...)> f) |
Register a new object construction function. | |
void | addAlias (const string &original, const string &alias) |
Add an alias for an existing registered type. | |
string | canonicalize (const string &name) |
Get the canonical name registered for a type. | |
bool | exists (const string &name) const |
Returns true if name is registered with this factory. | |
Public Member Functions inherited from FactoryBase | |
virtual | ~FactoryBase () |
destructor | |
Static Public Member Functions | |
static DomainFactory * | factory () |
Return a pointer to the factory. | |
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 | |
Private Member Functions | |
DomainFactory () | |
default constructor, which is defined as private | |
Static Private Attributes | |
static DomainFactory * | s_factory = 0 |
Pointer to the single instance of the factory. | |
static std::mutex | domain_mutex |
Mutex for use when calling the factory. | |
Additional Inherited Members | |
Protected Member Functions inherited from Factory< Domain1D, shared_ptr< Solution >, const string & > | |
void | addDeprecatedAlias (const string &original, const string &alias) |
Add a deprecated alias for an existing registered type. | |
Protected Member Functions inherited from FactoryBase | |
FactoryBase () | |
Constructor. | |
virtual void | deleteFactory ()=0 |
Virtual abstract function that deletes the factory. | |
|
private |
default constructor, which is defined as private
Definition at line 19 of file DomainFactory.cpp.
|
static |
Return a pointer to the factory.
On the first call, a new instance is created. Since there is no need to instantiate more than one factory, on all subsequent calls, a pointer to the existing factory is returned.
Definition at line 83 of file DomainFactory.cpp.
|
overridevirtual |
Virtual abstract function that deletes the factory.
This must be properly defined in child objects.
Implements FactoryBase.
Definition at line 92 of file DomainFactory.cpp.
|
staticprivate |
Pointer to the single instance of the factory.
Definition at line 36 of file DomainFactory.h.
|
staticprivate |
Mutex for use when calling the factory.
Definition at line 42 of file DomainFactory.h.