Diffstat (limited to 'pwmanager/pwmanager/randomizer.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | pwmanager/pwmanager/randomizer.h | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/pwmanager/pwmanager/randomizer.h b/pwmanager/pwmanager/randomizer.h index db17334..5eb02f1 100644 --- a/pwmanager/pwmanager/randomizer.h +++ b/pwmanager/pwmanager/randomizer.h @@ -8,27 +8,37 @@ * as published by the Free Software Foundation. * * * ***************************************************************************/ /*************************************************************************** * copyright (C) 2004 by Ulf Schenk - * This file is originaly based on version 1.0.1 of pwmanager + * This file is originaly based on version 2.0 of pwmanager * and was modified to run on embedded devices that run microkde * * $Id$ **************************************************************************/ -#ifndef RANDOMIZER_H -#define RANDOMIZER_H +#ifndef __RANDOMIZER_H +#define __RANDOMIZER_H #include "pwmexception.h" -#include <stdio.h> +#ifndef PWM_EMBEDDED +#include <qmutex.h> +#endif + +#include <string> + +using std::string; + +class QFile; -/** simple randomizer - * This class is *NOT* reentrant save! +/** Randomizer to get random values. + * This class is thread-safe. + * You should always use the instance returned by + * obj() to use it. */ class Randomizer { public: Randomizer(); ~Randomizer(); @@ -49,19 +59,28 @@ public: } /** generate random char */ char genRndChar(); /** generate random int */ int genRndInt(); - /** generate random unsigned int */ + /** generate a random unsigned int */ unsigned int genRndUInt(); + /** returns a buffer with random data */ + string genRndBuf(size_t len); + /** returns a buffer with random data */ + void genRndBuf(unsigned char *buf, size_t len); + protected: /** random-device-node (if available. Otherwise NULL) */ - FILE *rndDev; + QFile *rndDev; +#ifndef PWM_EMBEDDED + /** mutex for accessing the public functions thread-save */ + QMutex mutex; +#endif /** seed value for fallback - rand_r() */ unsigned int seed; - /** static Randomier object returned by obj() */ + /** static Randomizer object returned by obj() */ static Randomizer *rndObj; }; -#endif +#endif // __RANDOMIZER_H |