6#ifndef CONNECTOR_FACTORY_H
7#define CONNECTOR_FACTORY_H
27class ConnectorFactory :
29 shared_ptr<ReactorBase>, shared_ptr<ReactorBase>, const string&>
32 static ConnectorFactory* factory();
37 static ConnectorFactory* s_factory;
38 static std::mutex connector_mutex;
65 shared_ptr<ReactorBase> r0,
66 shared_ptr<ReactorBase> r1,
67 const string& name=
"(none)");
73shared_ptr<FlowDevice>
newFlowDevice(
const string& model,
const string& name=
"(none)");
78 shared_ptr<ReactorBase> r0,
79 shared_ptr<ReactorBase> r1,
80 const string& name=
"(none)");
86shared_ptr<WallBase>
newWall(
const string& model,
const string& name=
"(none)");
90shared_ptr<WallBase>
newWall(
const string& model,
91 shared_ptr<ReactorBase> r0,
92 shared_ptr<ReactorBase> r1,
93 const string& name=
"(none)");
File contains the FactoryBase class declarations.
void deleteFactory() override
Virtual abstract function that deletes the factory.
Factory class that supports registering functions to create objects.
Base class for 'flow devices' (valves, pressure regulators, etc.) connecting reactors.
Base class for 'walls' (walls, pistons, etc.) connecting reactors.
shared_ptr< FlowDevice > newFlowDevice(const string &model, shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name)
Create a FlowDevice object of the specified type.
shared_ptr< WallBase > newWall(const string &model, shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name)
Create a WallBase object of the specified type.
shared_ptr< ConnectorNode > newConnectorNode(const string &model, shared_ptr< ReactorBase > r0, shared_ptr< ReactorBase > r1, const string &name)
Create a ConnectorNode object of the specified type.
Namespace for the Cantera kernel.