summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/randomizer.h
Unidiff
Diffstat (limited to 'pwmanager/pwmanager/randomizer.h') (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/randomizer.h39
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
@@ -11,21 +11,31 @@
11 11
12/*************************************************************************** 12/***************************************************************************
13 * copyright (C) 2004 by Ulf Schenk 13 * copyright (C) 2004 by Ulf Schenk
14 * This file is originaly based on version 1.0.1 of pwmanager 14 * This file is originaly based on version 2.0 of pwmanager
15 * and was modified to run on embedded devices that run microkde 15 * and was modified to run on embedded devices that run microkde
16 * 16 *
17 * $Id$ 17 * $Id$
18 **************************************************************************/ 18 **************************************************************************/
19 19
20#ifndef RANDOMIZER_H 20#ifndef __RANDOMIZER_H
21#define RANDOMIZER_H 21#define __RANDOMIZER_H
22 22
23#include "pwmexception.h" 23#include "pwmexception.h"
24 24
25#include <stdio.h> 25#ifndef PWM_EMBEDDED
26#include <qmutex.h>
27#endif
28
29#include <string>
30
31using std::string;
32
33class QFile;
26 34
27/** simple randomizer 35/** Randomizer to get random values.
28 * This class is *NOT* reentrant save! 36 * This class is thread-safe.
37 * You should always use the instance returned by
38 * obj() to use it.
29 */ 39 */
30class Randomizer 40class Randomizer
31{ 41{
@@ -52,16 +62,25 @@ public:
52 char genRndChar(); 62 char genRndChar();
53 /** generate random int */ 63 /** generate random int */
54 int genRndInt(); 64 int genRndInt();
55 /** generate random unsigned int */ 65 /** generate a random unsigned int */
56 unsigned int genRndUInt(); 66 unsigned int genRndUInt();
57 67
68 /** returns a buffer with random data */
69 string genRndBuf(size_t len);
70 /** returns a buffer with random data */
71 void genRndBuf(unsigned char *buf, size_t len);
72
58protected: 73protected:
59 /** random-device-node (if available. Otherwise NULL) */ 74 /** random-device-node (if available. Otherwise NULL) */
60 FILE *rndDev; 75 QFile *rndDev;
76#ifndef PWM_EMBEDDED
77 /** mutex for accessing the public functions thread-save */
78 QMutex mutex;
79#endif
61 /** seed value for fallback - rand_r() */ 80 /** seed value for fallback - rand_r() */
62 unsigned int seed; 81 unsigned int seed;
63 /** static Randomier object returned by obj() */ 82 /** static Randomizer object returned by obj() */
64 static Randomizer *rndObj; 83 static Randomizer *rndObj;
65}; 84};
66 85
67#endif 86#endif // __RANDOMIZER_H