| Modifier and Type | Field and Description |
|---|---|
protected byte[] |
buffer
A temporary buffer to serve random bytes.
|
protected boolean |
initialised
Indicate if this instance has already been initialised or not.
|
protected String |
name
The canonical name prefix of the PRNG algorithm.
|
protected int |
ndx
The index into buffer of where the next byte will come from.
|
| Modifier | Constructor and Description |
|---|---|
protected |
BasePRNG(String name)
Trivial constructor for use by concrete subclasses.
|
| Modifier and Type | Method and Description |
|---|---|
abstract Object |
clone()
Returns a clone copy of this instance.
|
abstract void |
fillBlock() |
void |
init(Map attributes)
Initialises the pseudo-random number generator scheme with the
appropriate attributes.
|
boolean |
isInitialised() |
String |
name()
Returns the canonical name of this instance.
|
byte |
nextByte()
Returns the next 8 bits of random data generated from this instance.
|
void |
nextBytes(byte[] out,
int offset,
int length)
Fills the designated byte array, starting from byte at index
offset, for a maximum of length bytes with the
output of this generator instance. |
abstract void |
setup(Map attributes) |
protected String name
protected boolean initialised
protected byte[] buffer
protected int ndx
protected BasePRNG(String name)
Trivial constructor for use by concrete subclasses.
name - the canonical name of this instance.public String name()
IRandomReturns the canonical name of this instance.
public void init(Map attributes)
IRandomInitialises the pseudo-random number generator scheme with the appropriate attributes.
public byte nextByte()
throws IllegalStateException,
LimitReachedException
IRandomReturns the next 8 bits of random data generated from this instance.
nextByte in interface IRandomIllegalStateException - if the instance is not yet initialised.LimitReachedException - if this instance has reached its
theoretical limit for generating non-repetitive pseudo-random data.public void nextBytes(byte[] out,
int offset,
int length)
throws IllegalStateException,
LimitReachedException
IRandomFills the designated byte array, starting from byte at index
offset, for a maximum of length bytes with the
output of this generator instance.
nextBytes in interface IRandomout - the placeholder to contain the generated random bytes.offset - the starting index in out to consider. This method
does nothing if this parameter is not within 0 and
out.length.length - the maximum number of required random bytes. This method
does nothing if this parameter is less than 1.IllegalStateException - if the instance is not yet initialised.LimitReachedException - if this instance has reached its
theoretical limit for generating non-repetitive pseudo-random data.public boolean isInitialised()
public abstract Object clone()
IRandomReturns a clone copy of this instance.
public abstract void setup(Map attributes)
public abstract void fillBlock()
throws LimitReachedException
LimitReachedExceptionCopyright © 2017 LSST. All rights reserved.