8#ifndef INCLUDED_BSLH_SEEDGENERATOR
9#define INCLUDED_BSLH_SEEDGENERATOR
246#include <bslscm_version.h>
266template<
class RANDOM_NUM_GEN>
274 typedef typename RANDOM_NUM_GEN::result_type result_type;
279 enum { k_RNGOUTPUTSIZE =
sizeof(
typename RANDOM_NUM_GEN::result_type)};
290 explicit SeedGenerator(
const RANDOM_NUM_GEN &randomNumberGenerator);
312 void generateSeed(
char *seedLocation,
size_t seedLength);
320template<
class RANDOM_NUM_GEN>
327template<
class RANDOM_NUM_GEN>
330 const RANDOM_NUM_GEN &randomNumberGenerator)
331: RANDOM_NUM_GEN(randomNumberGenerator)
336template<
class RANDOM_NUM_GEN>
343 size_t numChunks = seedLength / k_RNGOUTPUTSIZE;
344 size_t remainder = seedLength % k_RNGOUTPUTSIZE;
346 for (
size_t i = 0; i != numChunks; ++i) {
347 result_type rand = RANDOM_NUM_GEN::operator()();
348 memcpy(seedLocation + i *
sizeof(rand), &rand,
sizeof(rand));
352 result_type rand = RANDOM_NUM_GEN::operator()();
353 memcpy(seedLocation + numChunks *
sizeof(rand), &rand, remainder);
Definition bslh_seedgenerator.h:267
SeedGenerator(const SeedGenerator &original)=default
SeedGenerator()
Definition bslh_seedgenerator.h:322
void generateSeed(char *seedLocation, size_t seedLength)
Definition bslh_seedgenerator.h:338
SeedGenerator & operator=(const SeedGenerator &rhs)=default
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bslh_defaulthashalgorithm.h:339