Least-Recently-Used (LRU) replacement policy. More...
#include <daemon/table/cs-policy-lru.hpp>
Public Types | |
using | EntryRef = Table::const_iterator |
A reference to a CS entry. More... | |
Public Member Functions | |
LruPolicy () | |
void | afterInsert (EntryRef i) |
Invoked by CS after a new entry is inserted. More... | |
void | afterRefresh (EntryRef i) |
Invoked by CS after an existing entry is refreshed by same Data. More... | |
void | beforeErase (EntryRef i) |
Invoked by CS before an entry is erased due to management command. More... | |
void | beforeUse (EntryRef i) |
Invoked by CS before an entry is used to match a lookup. More... | |
Cs * | getCs () const noexcept |
Returns a pointer to the associated CS instance. More... | |
size_t | getLimit () const noexcept |
Gets hard limit (in number of entries). More... | |
const std::string & | getName () const noexcept |
void | setCs (Cs *cs) noexcept |
Sets the associated CS instance. More... | |
void | setLimit (size_t nMaxEntries) |
Sets hard limit (in number of entries). More... | |
Static Public Member Functions | |
static unique_ptr< Policy > | create (const std::string &policyName) |
Returns a cs::Policy identified by policyName , or nullptr if policyName is unknown. More... | |
static std::set< std::string > | getPolicyNames () |
Returns a list of available policy names. More... | |
template<typename P > | |
static void | registerPolicy (std::string_view policyName=P::POLICY_NAME) |
Public Attributes | |
signal::Signal< Policy, EntryRef > | beforeEvict |
Signal emitted when an entry is being evicted. More... | |
Static Public Attributes | |
static constexpr std::string_view | POLICY_NAME {"lru"} |
Least-Recently-Used (LRU) replacement policy.
Definition at line 49 of file cs-policy-lru.hpp.
|
inherited |
A reference to a CS entry.
operator<
of EntryRef compares the Data name enclosed in the Entry. Definition at line 117 of file cs-policy.hpp.
nfd::cs::lru::LruPolicy::LruPolicy | ( | ) |
Definition at line 33 of file cs-policy-lru.cpp.
|
inherited |
Invoked by CS after a new entry is inserted.
The policy may evict entries if necessary. During this process, i
might be evicted.
Definition at line 75 of file cs-policy.cpp.
|
inherited |
Invoked by CS after an existing entry is refreshed by same Data.
The policy may witness this refresh to make better eviction decisions in the future.
Definition at line 82 of file cs-policy.cpp.
|
inherited |
Invoked by CS before an entry is erased due to management command.
Definition at line 89 of file cs-policy.cpp.
|
inherited |
Invoked by CS before an entry is used to match a lookup.
The policy may witness this usage to make better eviction decisions in the future.
Definition at line 96 of file cs-policy.cpp.
|
staticinherited |
Returns a cs::Policy identified by policyName
, or nullptr if policyName
is unknown.
Definition at line 45 of file cs-policy.cpp.
|
inlinenoexceptinherited |
Returns a pointer to the associated CS instance.
Definition at line 81 of file cs-policy.hpp.
|
inlinenoexceptinherited |
Gets hard limit (in number of entries).
Definition at line 99 of file cs-policy.hpp.
|
inlinenoexceptinherited |
Definition at line 72 of file cs-policy.hpp.
|
staticinherited |
Returns a list of available policy names.
Definition at line 53 of file cs-policy.cpp.
|
inlinestaticinherited |
Definition at line 47 of file cs-policy.hpp.
|
inlinenoexceptinherited |
Sets the associated CS instance.
Definition at line 90 of file cs-policy.hpp.
|
inherited |
Sets hard limit (in number of entries).
The policy may evict entries if necessary.
Definition at line 67 of file cs-policy.cpp.
Signal emitted when an entry is being evicted.
A policy implementation should emit this signal to cause CS to erase an entry from its index. CS should connect to this signal and erase the entry upon signal emission.
Definition at line 124 of file cs-policy.hpp.
|
staticconstexpr |
Definition at line 77 of file cs-policy-lru.hpp.