8 #ifndef GEOMETRYFACTORY_HPP_
9 #define GEOMETRYFACTORY_HPP_
12 #include "../config/SimulationConfig.hpp"
13 #include "../common/FactoryBase.hpp"
14 #include "../../../common/common.hpp"
34 std::function<
GeometryBase*(
void)> class_factory_function);
37 std::shared_ptr<GeometryBase>
create(std::string class_name,
38 std::shared_ptr<phoxonics::core::SimulationConfig> sim_config);
45 std::map<std::string, std::function<GeometryBase*(void)>> factory_function_registry_;
Definition: CommonBase.hpp:14
Definition: GeometryBase.hpp:23
void register_factory_function(std::string class_name, std::function< GeometryBase *(void)> class_factory_function)
Definition: GeometryFactory.cpp:22
Definition: GeometryFactory.hpp:25
static GeometryFactory * instance()
Definition: GeometryFactory.cpp:17
Definition: FactoryBase.hpp:16
std::shared_ptr< GeometryBase > create(std::string class_name, std::shared_ptr< phoxonics::core::SimulationConfig > sim_config)
Definition: GeometryFactory.cpp:30
virtual ~GeometryFactory()
Definition: GeometryFactory.cpp:13