TSDuck v3.46-4930
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::RandomGenerator Class Referenceabstract

#include <tsRandomGenerator.h>

Inheritance diagram for ts::RandomGenerator:

Public Member Functions

virtual ~RandomGenerator ()
virtual UString name () const =0
virtual bool read (void *addr, size_t size)=0
virtual bool readByteBlock (ByteBlock &data, size_t size)
template<typename INT_T>
requires std::integral<INT_T>
bool readInt (INT_T &value, INT_T min=std::numeric_limits< INT_T >::min(), INT_T max=std::numeric_limits< INT_T >::max())
virtual bool ready () const =0
virtual bool seed (const void *addr, size_t size)=0

Detailed Description

Abstract base class for PRNG's (pseudo-random numbers generators).

Constructor & Destructor Documentation

◆ ~RandomGenerator()

virtual ts::RandomGenerator::~RandomGenerator ( )
virtual

Virtual destructor

Member Function Documentation

◆ name()

virtual UString ts::RandomGenerator::name ( ) const
pure virtual

Algorithm name (informational only).

Returns
The algorithm name.

Implemented in ts::BetterSystemRandomGenerator, ts::SystemRandomGenerator, and ts::Xoshiro256ss.

◆ seed()

virtual bool ts::RandomGenerator::seed ( const void * addr,
size_t size )
pure virtual

Seed (add entropy) to the PRNG.

Parameters
[in]addrAddress of entropy data.
[in]sizeSize in bytes of entropy data.
Returns
True on success, false on error.

Implemented in ts::SystemRandomGenerator, and ts::Xoshiro256ss.

◆ ready()

virtual bool ts::RandomGenerator::ready ( ) const
pure virtual

Check if the PRNG is ready. If not ready, it must be seeded again.

Returns
True if the PRNG is ready.

Implemented in ts::BetterSystemRandomGenerator, ts::SystemRandomGenerator, and ts::Xoshiro256ss.

◆ read()

virtual bool ts::RandomGenerator::read ( void * addr,
size_t size )
pure virtual

Get random data.

Parameters
[out]addrAddress of returned random data.
[in]sizeRequested size in bytes of random data. The method always fill the buffer.
Returns
True on success, false on error.

Implemented in ts::BetterSystemRandomGenerator, ts::SystemRandomGenerator, and ts::Xoshiro256ss.

◆ readByteBlock()

virtual bool ts::RandomGenerator::readByteBlock ( ByteBlock & data,
size_t size )
virtual

Get random data in a byte block. The default implementation uses read().

Parameters
[out]dataReturned random data.
[in]sizeRequested size in bytes of random data.
Returns
True on success, false on error.

◆ readInt()

template<typename INT_T>
requires std::integral<INT_T>
bool ts::RandomGenerator::readInt ( INT_T & value,
INT_T min = std::numeric_limits<INT_T>::min(),
INT_T max = std::numeric_limits<INT_T>::max() )

Get a random integer value inside a defined range.

Template Parameters
INT_TAn integer type for the result.
Parameters
[out]valueThe return integer value.
[in]minMinimum value to return.
[in]maxMaximum value to return.
Returns
True on success, false on error.

The documentation for this class was generated from the following file: