From ce793e31f387c0715fa5b50c20e06510cc3e95ff Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Tue, 22 May 2012 17:15:40 +0000 Subject: Moved random to stable, just needs some minor tweaks. But it's already in use in a couple of core components, including in tempFile name generation. --- src/stable/random.h | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/stable/random.h (limited to 'src/stable/random.h') diff --git a/src/stable/random.h b/src/stable/random.h new file mode 100644 index 0000000..ba26f21 --- /dev/null +++ b/src/stable/random.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2007-2012 Xagasoft, All rights reserved. + * + * This file is part of the libbu++ library and is released under the + * terms of the license contained in the file LICENSE. + */ +#ifndef BU_RANDOM_H +#define BU_RANDOM_H + +#include "bu/singleton.h" +#include + +namespace Bu +{ + class RandomBase; + class Random : public Bu::Singleton + { + friend class Bu::Singleton; + private: + Random(); + virtual ~Random(); + + public: + template + static void setGenerator() + { + delete getInstance().pGen; + getInstance().pGen = new cl(); + } + + template + static void setGenerator( t1 p1 ) + { + delete getInstance().pGen; + getInstance().pGen = new cl( p1 ); + } + + template + static void setGenerator( t1 p1, t2 p2 ) + { + delete getInstance().pGen; + getInstance().pGen = new cl( p1, p2 ); + } + + RandomBase &getGenerator() { return *pGen; } + + static int32_t rand(); + static void seed( int32_t iSeed ); + + private: + void checkInit(); + + private: + Bu::RandomBase *pGen; + }; +}; + +#endif + -- cgit v1.2.3