Class BufferedSeedGenerator
- java.lang.Object
-
- io.github.pr0methean.betterrandom.seed.BufferedSeedGenerator
-
- All Implemented Interfaces:
SeedGenerator,Serializable
public class BufferedSeedGenerator extends Object implements SeedGenerator
A seed generator that wraps another, maintaining a buffer of previously-fetched bytes to reduce the number of I/O calls. The buffer is only used when the requested seed is strictly smaller than the buffer.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface io.github.pr0methean.betterrandom.seed.SeedGenerator
EMPTY_SEED
-
-
Constructor Summary
Constructors Constructor Description BufferedSeedGenerator(SeedGenerator delegate, int size)Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidgenerateSeed(byte[] output)Generates a seed value for a random number generator in an existing array.byte[]generateSeed(int length)Generates and returns a seed value for a random number generator as a new array.booleanisWorthTrying()Returns true if we cannot determine quickly (i.e.StringtoString()
-
-
-
Constructor Detail
-
BufferedSeedGenerator
public BufferedSeedGenerator(SeedGenerator delegate, int size)
Creates an instance.- Parameters:
delegate- the SeedGenerator to wrapsize- the buffer size in bytes
-
-
Method Detail
-
generateSeed
public void generateSeed(byte[] output) throws SeedExceptionDescription copied from interface:SeedGeneratorGenerates a seed value for a random number generator in an existing array.- Specified by:
generateSeedin interfaceSeedGenerator- Parameters:
output- The array that is to be populated with the seed.- Throws:
SeedException- If a seed cannot be generated for any reason.
-
generateSeed
public byte[] generateSeed(int length) throws SeedExceptionDescription copied from interface:SeedGeneratorGenerates and returns a seed value for a random number generator as a new array.- Specified by:
generateSeedin interfaceSeedGenerator- Parameters:
length- The length of the seed to generate (in bytes).- Returns:
- A byte array containing the seed data.
- Throws:
SeedException- If a seed cannot be generated for any reason.
-
isWorthTrying
public boolean isWorthTrying()
Description copied from interface:SeedGeneratorReturns true if we cannot determine quickly (i.e. without I/O calls) that this SeedGenerator would throw aSeedExceptionifSeedGenerator.generateSeed(int)orSeedGenerator.generateSeed(byte[])were being called right now.- Specified by:
isWorthTryingin interfaceSeedGenerator- Returns:
- true if this SeedGenerator will get as far as an I/O call or other slow operation in attempting to generate a seed immediately.
-
-