25 template <
class K,
class V>
31 return [
this]() ->
void {
32 std::lock_guard<std::mutex> guard(
mutex_);
33 VLOG(1) <<
"Invalidating " <<
contents_.size() <<
" cached hash tables.";
39 std::lock_guard<std::mutex> guard(
mutex_);
45 std::lock_guard<std::mutex> guard(
mutex_);
50 std::lock_guard<std::mutex> guard(
mutex_);
54 void insert(
const K& key, V& hash_table) {
55 std::lock_guard<std::mutex> guard(
mutex_);
57 if (kv.first == key) {
58 auto& cached_hash_table = kv.second;
59 cached_hash_table = hash_table;
63 contents_.emplace_back(key, hash_table);
68 std::lock_guard<std::mutex> guard(
mutex_);
70 if (kv.first == key) {
V getCachedHashTable(const size_t idx)
std::function< void()> getCacheInvalidator()
void insert(const K &key, V &hash_table)
size_t getNumberOfCachedHashTables()
std::vector< std::pair< K, V > > contents_