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.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/pwmanager/pwmanager/randomizer.h b/pwmanager/pwmanager/randomizer.h
new file mode 100644
index 0000000..db17334
--- a/dev/null
+++ b/pwmanager/pwmanager/randomizer.h
@@ -0,0 +1,67 @@
1/***************************************************************************
2 * *
3 * copyright (C) 2003, 2004 by Michael Buesch *
4 * email: mbuesch@freenet.de *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License version 2 *
8 * as published by the Free Software Foundation. *
9 * *
10 ***************************************************************************/
11
12/***************************************************************************
13 * copyright (C) 2004 by Ulf Schenk
14 * This file is originaly based on version 1.0.1 of pwmanager
15 * and was modified to run on embedded devices that run microkde
16 *
17 * $Id$
18 **************************************************************************/
19
20#ifndef RANDOMIZER_H
21#define RANDOMIZER_H
22
23#include "pwmexception.h"
24
25#include <stdio.h>
26
27/** simple randomizer
28 * This class is *NOT* reentrant save!
29 */
30class Randomizer
31{
32public:
33 Randomizer();
34 ~Randomizer();
35
36 static Randomizer * obj()
37 {
38 PWM_ASSERT(rndObj);
39 return rndObj;
40 }
41 static void init()
42 {
43 PWM_ASSERT(!rndObj);
44 rndObj = new Randomizer;
45 }
46 static void cleanup()
47 {
48 delete_ifnot_null(rndObj);
49 }
50
51 /** generate random char */
52 char genRndChar();
53 /** generate random int */
54 int genRndInt();
55 /** generate random unsigned int */
56 unsigned int genRndUInt();
57
58protected:
59 /** random-device-node (if available. Otherwise NULL) */
60 FILE *rndDev;
61 /** seed value for fallback - rand_r() */
62 unsigned int seed;
63 /** static Randomier object returned by obj() */
64 static Randomizer *rndObj;
65};
66
67#endif