30 #ifndef RANDOMIZER_CACHE_IMPLEMENTATION_GUARD
31 #define RANDOMIZER_CACHE_IMPLEMENTATION_GUARD
41 template <
typename T_Container>
43 cryptoProvider(cryptoProvider),
44 parameters(configurationPath),
55 template <
typename T_Container>
57 cryptoProvider(cryptoProvider),
58 parameters(parameters),
68 template <
typename T_Container>
70 size_t currentIndex = this->index;
74 this->index %= this->parameters.capacity;
76 return this->cache[currentIndex];
82 template <
typename T_Container>
84 this->cache.reserve(this->parameters.capacity);
86 for (
size_t i = 0; i < this->parameters.capacity; ++i) {
87 this->cache.emplace_back(T_Container(this->cryptoProvider, this->parameters));
93 #endif//RANDOMIZER_CACHE_IMPLEMENTATION_GUARD
const T_Container & Pop()
Extracts one element.
RandomizerCache(const typename T_Container::CryptoProvider &cryptoProvider, const std::string &configurationPath)
Constructor.
void initialize()
Populates the cache.