digiKam
Loading...
Searching...
No Matches
randomnumbergenerator.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2010-11-03
7 * Description : Generating random numbers
8 *
9 * SPDX-FileCopyrightText: 2010-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QByteArray>
20
21// Local includes
22
23#include "digikam_export.h"
24
25namespace Digikam
26{
27
28class DIGIKAM_EXPORT NonDeterministicRandomData : public QByteArray
29{
30public:
31
39 explicit NonDeterministicRandomData(int size);
40};
41
42// --------------------------------------------------------------------
43
53class DIGIKAM_EXPORT RandomNumberGenerator
54{
55public:
56
62 explicit RandomNumberGenerator();
64
71 quint32 seedNonDeterministic();
72
78 quint32 seedByTime();
79
83 static quint32 nonDeterministicSeed();
84
89 static quint32 timeSeed();
90
98 void seed(quint32 seed);
99
106 void reseed();
107
112 quint32 currentSeed() const;
113
119 int number(int min, int max);
120
126 double number(double min, double max);
127
133 bool yesOrNo(double p);
134
135private:
136
137 // Disable
139 RandomNumberGenerator& operator=(const RandomNumberGenerator&) = delete;
140
141private:
142
143 class Private;
144 Private* const d = nullptr;
145};
146
147} // namespace Digikam
Definition randomnumbergenerator.h:29
Definition randomnumbergenerator.h:54
Definition datefolderview.cpp:34