Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qrandom_p.h
Go to the documentation of this file.
1// Copyright (C) 2017 Intel Corporation.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QRANDOM_P_H
5#define QRANDOM_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qglobal_p.h"
19#include <qrandom.h>
20#include <private/qsimd_p.h>
21
23
29
30 // 28 bits
31 RandomDataMask = 0xfffffff0
32};
33
38
39#if defined(QT_BUILD_INTERNAL)
40extern Q_CORE_EXPORT QBasicAtomicInteger<uint> qt_randomdevice_control;
41#else
42static const struct
43{
44 uint loadAcquire() const { return 0; }
45} qt_randomdevice_control;
46#endif
47
48QRandomGenerator::InitialRandomData qt_initial_random_value() noexcept;
49
50QT_END_NAMESPACE
51
52#endif // QRANDOM_P_H
\inmodule QtCore
Definition qrandom.h:212
void discard(unsigned long long z)
Definition qrandom.h:240
result_type operator()()
Generates a 64-bit random quantity and returns it.
Definition qrandom.h:220
static constexpr result_type min()
Definition qrandom.h:247
quint64 result_type
A typedef to the type that operator() returns.
Definition qrandom.h:219
QRandomGenerator64(std::seed_seq &sseq) noexcept
Definition qrandom.h:232
QRandomGenerator64(const QRandomGenerator &other)
Definition qrandom.h:238
quint64 generate()
Generates one 64-bit random value and returns it.
Definition qrandom.h:217
QRandomGenerator64(quint32 seedValue=1)
Definition qrandom.h:223
QRandomGenerator64(const quint32 *begin, const quint32 *end)
Definition qrandom.h:235
QRandomGenerator64(const quint32 *seedBuffer, qsizetype len)
Definition qrandom.h:229
static constexpr result_type max()
Definition qrandom.h:248
QRandomGenerator64(const quint32(&seedBuffer)[N])
Definition qrandom.h:226
#define assert
QMutex QBasicMutex
Definition qmutex.h:360
static qsizetype callFillBuffer(FillBufferType f, T *v)
Definition qrandom.cpp:1268
static Q_NEVER_INLINE void fallback_fill(quint32 *ptr, qsizetype left) noexcept
Definition qrandom.cpp:210
static void fallback_update_seed(unsigned value)
Definition qrandom.cpp:198
bool operator==(const QRandomGenerator &rng1, const QRandomGenerator &rng2)
Definition qrandom.cpp:1221
#define Q_ASSERT(cond)
Definition qrandom.cpp:48
QRandomGenerator::InitialRandomData qt_initial_random_value() noexcept
Definition qrandom.cpp:1289
RNGType
Definition qrandom_p.h:34
@ MersenneTwister
Definition qrandom_p.h:36
@ SystemRNG
Definition qrandom_p.h:35
QRandomGeneratorControl
Definition qrandom_p.h:24
@ UseSystemRNG
Definition qrandom_p.h:25
@ SkipSystemRNG
Definition qrandom_p.h:26
@ SetRandomData
Definition qrandom_p.h:28
@ SkipHWRNG
Definition qrandom_p.h:27
@ RandomDataMask
Definition qrandom_p.h:31
static QRandomGenerator64 * system()
Definition qrandom.cpp:353
static void securelySeed(QRandomGenerator *rng)
Definition qrandom.cpp:370
static SystemAndGlobalGenerators * self()
Definition qrandom.cpp:346
static QRandomGenerator64 * globalNoInit()
Definition qrandom.cpp:362
uchar data[sizeof(QRandomGenerator64)]
Definition qrandom.cpp:330
void generate(quint32 *begin, quint32 *end) noexcept(FillBufferNoexcept)
Definition qrandom.cpp:283
static SystemGenerator & self()
Definition qrandom.cpp:397
void generate(T *begin, T *end)
Definition qrandom.cpp:153