43 virtual void InitSeed(
const void* pData,
size_t iSize) = 0;
45 void InitSeedDefault(
size_t iSize =
sizeof(
int));
46 void InitSeedUns(UINT iSeed);
48 virtual HRESULT GetNoise(
void* pData,
size_t iSize)
override;
51 virtual UINT get_RandUns();
55 return GetRandUX(2) == 1 ;
60 virtual UINT GetRandUX(UINT nScale);
61 int GetRandIRange(
int iRangeLo,
int iRangeHi);
73 static void GRAYCALL GetNoisePerf(
void* pData,
size_t iSize);
76 GetNoisePerf(pData, iSize);
87 virtual void InitSeed(
const void* pData,
size_t iSize)
100 virtual HRESULT GetNoise(
void* pData,
size_t iSize)
override;
101 virtual UINT get_RandUns();
118 : m_Src(pData, nSize)
134 ::memcpy(pData, m_Src.
GetOffset(m_nOffset), len);
162 virtual void InitSeed(
const void* pData,
size_t iSize)
override;
163 virtual UINT GetRandUX(UINT nScale)
override;
#define IGNORE_WARN_INTERFACE(c)
Definition: GrayCore.h:79
#define GRAYCORE_LINK
Definition: GrayCore.h:47
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
#define UNREFERENCED_PARAMETER(P)
< _WIN32 type thing. get rid of stupid warning.
Definition: SysTypes.h:299
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define CHEAPOBJECT_IMPL
Definition: cHeapObject.h:32
#define UNITTEST_FRIEND(n)
Define this in the class body to be unit tested. Allow the unit test to access private/protected stuf...
Definition: cUnitTestDecl.h:17
BYTE * GetOffset(size_t nOffset) const
Definition: cMem.h:427
bool IsValidIndex2(size_t i) const noexcept
Definition: cMem.h:382
void * get_Data() const noexcept
Definition: cMem.h:349
virtual void InitSeed(const void *pData, size_t iSize)=0
bool GetRandBool()
Definition: cRandom.h:52
UINT SEED_t
default seed size might be 32 or 64 bit depending on k_RAND_MAX.
Definition: cRandom.h:34
virtual ~cRandomBase()
Definition: cRandom.h:39
cRandomBase() noexcept
Definition: cRandom.h:36
Definition: cRandom.h:107
virtual HRESULT GetNoise(void *pData, size_t len) override
fill array with random bytes. return # bytes filled.
Definition: cRandom.h:122
cMemBlock m_Src
Definition: cRandom.h:113
cRandomBlock(const void *pData, size_t nSize) noexcept
Definition: cRandom.h:117
size_t m_nOffset
Definition: cRandom.h:114
Definition: cRandom.h:143
virtual HRESULT GetNoise(void *pData, size_t iSize) override
fill array with random bytes. return # bytes filled.
Definition: cRandom.h:74
Definition: cSingleton.h:127
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
DECLARE_INTERFACE(IRandomNoise)
__DECL_IMPORT cRandomDef g_Rand
the global random number generator. NOT thread safe. but does that matter?
Definition: cRandom.cpp:15
virtual HRESULT GetNoise(void *pData, size_t iSize)=0
fill array with random bytes. return # bytes filled.
static void Fill(void *pDst, size_t nSize, BYTE bVal) noexcept
Definition: cMem.h:174