52#ifndef INTEGRATORS_INTEGRATORFACTORY_HPP
53#define INTEGRATORS_INTEGRATORFACTORY_HPP
65 class IntegratorCreator;
74 using CreatorMapType = std::map<std::string, IntegratorCreator*>;
75 using IdentVectorType = std::vector<std::string>;
76 using IdentVectorIterator = std::vector<std::string>::iterator;
128 CreatorMapType creatorMap_;
132 std::ostream& operator<<(std::ostream& o, IntegratorFactory& factory);
Factory pattern and Singleton Pattern are used to define an interface for creating an Integrator.
bool unregisterIntegrator(const std::string &id)
Unregisters the creator for the given type identifier.
IdentVectorType getIdents()
Returns all of the registed type identifiers.
Integrator * createIntegrator(const std::string &id, SimInfo *info)
Looks up the type identifier in the internal map.
static IntegratorFactory & getInstance()
Returns an instance of Integrator factory.
bool registerIntegrator(IntegratorCreator *creator)
Registers a creator with a type identifier.
Declaration of the Integrator base class, which all other integrators inherit from.
One of the heavy-weight classes of OpenMD, SimInfo maintains objects and variables relating to the cu...
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.