Next
Previous
Table Of Contents
The PRNG Abstract Base Class
#include <prng/prng.hxx>
Overview
The PRNG abstract base class is designed to aid in the
consturction of easy to use pseudo-random number generators.
Since it is natural for many pseudo-random number generators to produce
several bytes of output at a time, the PRNG base class automatically
handles the buffering of this output. Creating a subclass is, therefore,
as easy as supplying a method to fill the internal buffer once
it is empty.
Protected Variables
_buffer
u8* _buffer;
Points to a high endian byte string representing the output of the pseudo-random
number generator.
_bufferSize
int _bufferSize;
This is the number of bytes the internal buffer contains.
_withdrawlPos
int _withdrawlPos;
Position in the byte string pointed to by _buffer that the next
byte of output is to be taken from.
Protected Methods
RefillBuffer
virtual void RefillBuffer()=0;
This method needs to be overloaded to write the next
_bufferSize bytes of output from
the pseudo-random generator, into the memory pointed
to by _buffer.
Public Methods
Constructor
PRNG();
Allocates memory for the internal buffer, but does not fill in the first
block of data.
Destructor
virtual ~PRNG();
Frees memory allocated to the internal buffer.
NextByte()
u8 NextByte();
Returns the next byte in the stream of bytes produced by the pseudo-random number
generator.
NextWord()
u16 NextWord();
Returns the next word in the stream of bytes produced by the pseudo-random number
generator, under the assumption that the stream is producing bytes in high endian order.
NextDWord()
u32 NextDWord();
Returns the next dword in the stream of bytes produced by the pseudo-random number
generator, under the assumption that the stream is producing bytes in high endian order.
NextQuantum()
void NextQuantum(void* buffer, const int quantumSize);
Writes the next quantumSize bytes of the stream of bytes
produced by the pseudo-random number generator into
the memory pointed to by buffer.
Next
Previous
Table Of Contents