26#include <unordered_map>
35template <
typename Data_extension>
37 std::unordered_map<meta::Metadata, Data_extension, meta::Metadata::Hash>;
39template <
typename Data_extension = data::Data>
64 auto it =
cache_.find(metadata);
65 if (it ==
cache_.end())
return false;
80 bool ok =
cache_.insert({metadata, data}).second;
94 bool removed =
cache_.erase(metadata) != 0;
125 return cache_.find(metadata);
bool erase(const meta::Metadata metadata)
Remove an entry from cache.
Definition: cache.h:93
Cache< Data_extension >::const_iterator at(const meta::Metadata metadata) const
Retrieve iterator at an element from cache.
Definition: cache.h:123
Datacache & operator=(const Datacache &src)=delete
void clear()
Clear the cache.
Definition: cache.h:100
Cache< Data_extension >::const_iterator begin() const
Definition: cache.h:112
size_t version() const
Get cache version.
Definition: cache.h:109
Cache< Data_extension > cache_
Sensitive data cache.
Definition: cache.h:130
size_t size() const
Get size.
Definition: cache.h:106
~Datacache()=default
Destructor.
Datacache(const Datacache &src)=delete
Disable copy.
Datacache(Datacache &&src)=delete
bool store(const meta::Metadata metadata, const Data_extension data)
Store and element in cache.
Definition: cache.h:79
Cache< Data_extension >::const_iterator end() const
Definition: cache.h:115
Datacache & operator=(Datacache &&src)=delete
bool empty() const
Check if cache is empty.
Definition: cache.h:103
Datacache()
Constructor.
Definition: cache.h:43
size_t version_
Cache version.
Definition: cache.h:132
bool get(const meta::Metadata metadata, Data_extension &data) const
Retrieve an element from cache.
Definition: cache.h:63
std::unordered_map< meta::Metadata, Data_extension, meta::Metadata::Hash > Cache
Definition: cache.h:37
Definition: keyring_encryption_service_definition.h:31