Cantera  2.5.1
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Attributes | List of all members
ThermoFactory Class Reference

Factory class for thermodynamic property managers. More...

#include <ThermoFactory.h>

Inheritance diagram for ThermoFactory:
[legend]
Collaboration diagram for ThermoFactory:
[legend]

Public Member Functions

virtual void deleteFactory ()
 delete the static instance of this factory More...
 
virtual ThermoPhasenewThermoPhase (const std::string &model)
 Create a new thermodynamic property manager. More...
 
- Public Member Functions inherited from Factory< ThermoPhase >
ThermoPhasecreate (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< ThermoPhase *(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...
 

Static Public Member Functions

static ThermoFactoryfactory ()
 Static function that creates a static instance of the factory. More...
 
- 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...
 

Private Member Functions

 ThermoFactory ()
 Private constructors prevents usage. More...
 

Static Private Attributes

static ThermoFactorys_factory = 0
 static member of a single instance More...
 
static std::mutex thermo_mutex
 Decl for locking mutex for thermo factory singleton. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Factory< ThermoPhase >
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...
 

Detailed Description

Factory class for thermodynamic property managers.

This class keeps a list of the known ThermoPhase classes, and is used to create new instances of these classes.

Definition at line 54 of file ThermoFactory.h.

Constructor & Destructor Documentation

◆ ThermoFactory()

ThermoFactory ( )
private

Private constructors prevents usage.

Definition at line 50 of file ThermoFactory.cpp.

Referenced by ThermoFactory::factory().

Member Function Documentation

◆ factory()

static ThermoFactory* factory ( )
inlinestatic

Static function that creates a static instance of the factory.

Definition at line 58 of file ThermoFactory.h.

References ThermoFactory::s_factory, ThermoFactory::thermo_mutex, and ThermoFactory::ThermoFactory().

Referenced by Cantera::newThermoPhase().

◆ deleteFactory()

virtual void deleteFactory ( )
inlinevirtual

delete the static instance of this factory

Implements FactoryBase.

Definition at line 67 of file ThermoFactory.h.

References ThermoFactory::s_factory, and ThermoFactory::thermo_mutex.

◆ newThermoPhase()

ThermoPhase * newThermoPhase ( const std::string &  model)
virtual

Create a new thermodynamic property manager.

Parameters
modelString to look up the model against
Returns
a pointer to a new ThermoPhase instance matching the model string. Returns NULL if something went wrong. Throws an exception UnknownThermoPhaseModel if the string wasn't matched.

Definition at line 99 of file ThermoFactory.cpp.

Member Data Documentation

◆ s_factory

ThermoFactory * s_factory = 0
staticprivate

static member of a single instance

Definition at line 84 of file ThermoFactory.h.

Referenced by ThermoFactory::deleteFactory(), and ThermoFactory::factory().

◆ thermo_mutex

std::mutex thermo_mutex
staticprivate

Decl for locking mutex for thermo factory singleton.

Definition at line 90 of file ThermoFactory.h.

Referenced by ThermoFactory::deleteFactory(), and ThermoFactory::factory().


The documentation for this class was generated from the following files: