Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::cRandomOS Class Reference

#include <cRandom.h>

Inheritance diagram for Gray::cRandomOS:
Gray::cRandomBase Gray::cSingleton< cRandomOS > Gray::IRandomNoise Gray::cSingletonStatic< TYPE > Gray::cSingletonRegister Gray::CObject Gray::cHeapObject Gray::IHeapObject

Public Member Functions

 cRandomOS ()
 
virtual ~cRandomOS ()
 
virtual HRESULT GetNoise (void *pData, size_t iSize) override
 fill array with random. return # filled. More...
 
virtual UINT get_RandUns ()
 
const void * get_HeapPtr () const noexcept override
 Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr(). More...
 
- Public Member Functions inherited from Gray::cRandomBase
 cRandomBase () noexcept
 
virtual ~cRandomBase ()
 
void InitSeed (IRandomNoise *pSrc, size_t iSize)
 the default random number generator. NOT Thread Safe! More...
 
void InitSeedDefault (size_t iSize=sizeof(int))
 
void InitSeedUns (UINT iSeed)
 
bool GetRandBool ()
 
virtual UINT GetRandUX (UINT nScale)
 
int GetRandIRange (int iRangeLo, int iRangeHi)
 
- Public Member Functions inherited from Gray::CObject
virtual ~CObject ()
 
virtual bool isValidCheck () const noexcept
 < memory allocation and structure definitions are valid. More...
 
virtual void AssertValid () const
 < memory allocation and structure definitions are valid. More...
 
virtual void Serialize (cArchive &a)
 
- Public Member Functions inherited from Gray::cHeapObject
 cHeapObject ()
 
virtual ~cHeapObject ()
 
bool IsValidInsideN (INT_PTR index) const
 
bool IsValidInsidePtr (void const *pTest) const
 
virtual size_t GetHeapStatsThis (OUT ITERATE_t &iAllocCount) const
 
virtual bool isValidCheck () const noexcept
 

Static Public Member Functions

static HRESULT __stdcall GetNoiseOS (void *pData, size_t iSize)
 
- Static Public Member Functions inherited from Gray::cSingleton< cRandomOS >
static cRandomOS *__stdcall get_Single ()
 
static TYPE2 *__stdcall get_SingleT ()
 
static cRandomOS &__stdcall I ()
 
- Static Public Member Functions inherited from Gray::cSingletonStatic< TYPE >
static bool isSingleCreated () noexcept
 
static TYPEget_SingleU () noexcept
 
static TYPEget_Single ()
 
template<class TYPE2 >
static TYPE2 *__stdcall get_SingleCast ()
 
static TYPEI () noexcept
 
- Static Public Member Functions inherited from Gray::cSingletonRegister
static void __stdcall ReleaseModule (HMODULE hMod)
 

Additional Inherited Members

- Public Types inherited from Gray::cRandomBase
typedef UINT SEED_t
 default seed size might be 32 or 64 bit depending on k_RAND_MAX. More...
 
- Static Public Attributes inherited from Gray::cSingletonRegister
static cThreadLockFast sm_LockSingle
 common lock for all cSingleton. More...
 
- Protected Member Functions inherited from Gray::cSingleton< cRandomOS >
 cSingleton (cRandomOS *pObject, const TYPEINFO_t &rAddrCode=typeid(cRandomOS)) noexcept
 
virtual ~cSingleton ()
 
- Protected Member Functions inherited from Gray::cSingletonStatic< TYPE >
 cSingletonStatic (TYPE *pObject) noexcept
 
virtual ~cSingletonStatic () noexcept
 
- Protected Member Functions inherited from Gray::cSingletonRegister
 cSingletonRegister (const TYPEINFO_t &rAddrCode) noexcept
 
virtual ~cSingletonRegister ()
 
void RegisterSingleton ()
 
- Protected Attributes inherited from Gray::cSingletonRegister
HMODULE m_hModuleLoaded
 What modules loaded this ? So singletons can be destroyed if DLL/SO unloads. More...
 
- Static Protected Attributes inherited from Gray::cSingletonStatic< TYPE >
static TYPEsm_pThe = nullptr
 pointer to the one and only object of this TYPE. ASSUME automatically init to = nullptr. More...
 

Detailed Description

Get Low level Hardware based noise supplied by the OS. NO SEED. NOT Deterministic (in theory) linux use "/dev/urandom" as a get_RandomSeed().

Constructor & Destructor Documentation

◆ cRandomOS()

Gray::cRandomOS::cRandomOS ( )

◆ ~cRandomOS()

Gray::cRandomOS::~cRandomOS ( )
virtual

Member Function Documentation

◆ get_HeapPtr()

const void* Gray::cRandomOS::get_HeapPtr ( ) const
inlineoverridevirtualnoexcept

Get the top level (outermost, freeable) class pointer. I can delete get_HeapPtr().

Reimplemented from Gray::cHeapObject.

◆ get_RandUns()

UINT Gray::cRandomOS::get_RandUns ( )
virtual

Reimplemented from Gray::cRandomBase.

◆ GetNoise()

HRESULT Gray::cRandomOS::GetNoise ( void *  pData,
size_t  iSize 
)
overridevirtual

fill array with random. return # filled.

Get the best source or random noise the system can supply. Make a random seed from the most random source we can find.

fill a buffer with random bytes of data. < 0 = error.

Reimplemented from Gray::cRandomBase.

◆ GetNoiseOS()

HRESULT GRAYCALL Gray::cRandomOS::GetNoiseOS ( void *  pData,
size_t  iSize 
)
static

Try to use the OS supplied noise generator. It may not work.


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