/* * RandomNumberDistribution_Encapsulation.hpp * * Created on: Jan 01, 2011 * Author: heber */ #ifndef RANDOMNUMBERDISTRIBUTION_ENCAPSULATION_HPP_ #define RANDOMNUMBERDISTRIBUTION_ENCAPSULATION_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif #include #include "RandomNumberDistribution.hpp" #include "RandomNumberGeneratorFactory.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "unittests/RandomNumberGeneratorFactoryUnitTest.hpp" /** Template class that encapsulates the random number distributions from * random::boost. * * * We need one template parameters: * -# the distribution - generates uniform random numbers */ template class RandomNumberDistribution_Encapsulation : public RandomNumberDistribution { /** * Factory is friend such that it can access private cstor. */ friend class RandomNumberGeneratorFactory; friend class RandomNumberGeneratorFactoryTest; public: /** Getter for the type name of the internal distribution. * */ std::string name() { return typeid(distribution_type).name(); } /** Getter for the distribution instance. * * @return reference to instance */ distribution& getDistribution() { return distribution_type; } /** Constructor that instantiates a specific random number generator and * distribution. * @param _distribution_type instance of the desired distribution */ RandomNumberDistribution_Encapsulation() {} /** Destructor of the class. * */ ~RandomNumberDistribution_Encapsulation() {} private: distribution distribution_type; }; #endif /* RANDOMNUMBERDISTRIBUTION_ENCAPSULATION_HPP_ */