Imported Upstream version 14.32.2
[platform/upstream/libzypp.git] / zypp / base / Random.h
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9
10 #ifndef ZYPP_BASE_Random_H
11 #define ZYPP_BASE_Random_H
12
13 #include <string>
14
15 ///////////////////////////////////////////////////////////////////
16 namespace zypp
17 { /////////////////////////////////////////////////////////////////
18   ///////////////////////////////////////////////////////////////////
19   namespace base
20   { ///////////////////////////
21     // Taken from KApplication
22     int random_int();
23     // Taken from KApplication
24     std::string random_string(int length);
25
26
27     /** Return a random number from <tt>[0,RAND_MAX[</tt>. */
28     inline unsigned random()
29     {
30       return random_int();
31     }
32     /** Return a random number from <tt>[0,size_r[</tt>. */
33     inline unsigned random( unsigned size_r )
34     {
35       return random_int() % size_r;
36     }
37     /** Return a random number from <tt>[min_r,min_r+size_r[</tt>. */
38     inline unsigned random( unsigned min_r, unsigned size_r )
39     {
40       return min_r + random( size_r );
41     }
42
43
44   } //ns base
45 } // ns zypp
46
47 #endif
48