/* * RandomNumberEngineFactory.hpp * * Created on: Jan 03, 2011 * Author: heber */ #ifndef RANDOMNUMBERENGINEFACTORY_HPP_ #define RANDOMNUMBERENGINEFACTORY_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include "CodePatterns/Singleton.hpp" // this defines stuff necessary PREVIOUS of Factory.hpp inclusion #include "RandomNumberEngineFactory.def" #include "CodePatterns/FactoryTypeList.hpp" #include "CodePatterns/Factory.hpp" #include #include "unittests/RandomNumberEngineFactoryUnitTest.hpp" class RandomNumberEngine; /** This is the abstract factory class for random number engines. * * The reason for creating the engines as this is that we would like to set * the engines parameters, via some Action, and then onward only have * random number engines of this type using these parameters. Hence, we have * a singleton factory that is controlled by the Action and can then create * engines wherever we like in the code by having the factory create one. * */ class RandomNumberEngineFactory : public Singleton, public Factory { friend class Singleton; friend class RandomNumberEngineFactoryTest; protected: RandomNumberEngineFactory(); virtual ~RandomNumberEngineFactory(); }; #include "RandomNumberEngineFactory.undef" #endif /* RANDOMNUMBERENGINEFACTORY_HPP_ */