/* */ #ifndef _D_SIMPLE_RANDOMIZER_H_ #define _D_SIMPLE_RANDOMIZER_H_ #include "Randomizer.h" #include "a2time.h" #include class SimpleRandomizer : public Randomizer { private: static RandomizerHandle randomizer; SimpleRandomizer() {} public: static RandomizerHandle getInstance() { if(randomizer.isNull()) { randomizer = new SimpleRandomizer(); } return randomizer; } static void init() { #ifdef HAVE_SRANDOM srandom(time(0)); #else srand(time(0)); #endif } virtual ~SimpleRandomizer() {} virtual long int getRandomNumber() { #ifdef HAVE_RANDOM return random(); #else return rand(); #endif } virtual long int getMaxRandomNumber() { return RAND_MAX; } virtual long int getRandomNumber(long int to) { return(int32_t)(((double)to)*getRandomNumber()/(getMaxRandomNumber()+1.0)); } }; #endif // _D_SIMPLE_RANDOMIZER_H_