12 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
16 inherited::ClearOlderThan (
t);
18 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
24 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
25 template <
typename K1>
32 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
39 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
46 inherited::Add (k, v, addReplaceMode);
48 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
55 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
61 return inherited::Lookup (k, staleIfOlderThan);
63 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
64 inline VALUE SynchronizedCallerStalenessCache<KEY, VALUE, TIME_TRAITS>::LookupValue (TimeStampType staleIfOlderThan,
const function<VALUE ()>& cacheFiller)
65 requires (not IsKeyedCache<KEY>)
67 [[maybe_unused]]
auto&& lock = lock_guard{fMutex_};
68 return inherited::LookupValue (staleIfOlderThan, cacheFiller);
70 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
71 template <
typename F,
typename K>
72 inline VALUE SynchronizedCallerStalenessCache<KEY, VALUE, TIME_TRAITS>::LookupValue (Common::ArgByValueType<K> k,
73 TimeStampType staleIfOlderThan, F&& cacheFiller)
74 requires (IsKeyedCache<KEY> and is_invocable_r_v<VALUE, F, KEY>)
79 auto&& lock = shared_lock{fMutex_};
80 if (optional<VALUE> o = inherited::Lookup (k, staleIfOlderThan)) {
85 if (fHoldWriteLockDuringCacheFill) {
89 inherited::Add (k, v);
101 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
102 template <
typename K>
110 template <
typename KEY,
typename VALUE,
typename TIME_TRAITS>
LRUCache implements a simple least-recently-used caching strategy, with optional hashing (of keys) to...
simple wrapper on CallerStalenessCache (with the same API) - but internally synchronized in a way tha...
typename inherited::TimeStampType TimeStampType
nonvirtual void Add(Common::ArgByValueType< VALUE > v)
nonvirtual void ClearOlderThan(TimeStampType t)
nonvirtual optional< VALUE > Lookup(TimeStampType staleIfOlderThan) const
conditional_t<(sizeof(CHECK_T)<=2 *sizeof(void *)) and is_trivially_copyable_v< CHECK_T >, CHECK_T, const CHECK_T & > ArgByValueType
This is an alias for 'T' - but how we want to pass it on stack as formal parameter.