aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/random_provider/random_provider.h
blob: 6e7226866f898e954a382f68913cb51866baa41c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once

#include <util/generic/guid.h>
#include <util/random/common_ops.h>

class IRandomProvider: public TThrRefBase, public TCommonRNG<ui64, IRandomProvider> {
public:
    virtual TGUID GenGuid() noexcept = 0;
    virtual TGUID GenUuid4() noexcept = 0;
    virtual ui64 GenRand() noexcept = 0; // for TCommonRNG
};

TIntrusivePtr<IRandomProvider> CreateDefaultRandomProvider();
TIntrusivePtr<IRandomProvider> CreateDeterministicRandomProvider(ui64 seed);