40 LruPolicy::doAfterInsert(EntryRef i)
42 this->insertToQueue(i,
true);
47 LruPolicy::doAfterRefresh(EntryRef i)
49 this->insertToQueue(i,
false);
53 LruPolicy::doBeforeErase(EntryRef i)
55 m_queue.get<1>().erase(i);
59 LruPolicy::doBeforeUse(EntryRef i)
61 this->insertToQueue(i,
false);
65 LruPolicy::evictEntries()
67 BOOST_ASSERT(this->
getCs() !=
nullptr);
69 BOOST_ASSERT(!m_queue.empty());
77 LruPolicy::insertToQueue(EntryRef i,
bool isNewEntry)
80 auto [it, isNew] = m_queue.push_back(i);
82 BOOST_ASSERT(isNew == isNewEntry);
84 m_queue.relocate(m_queue.end(), it);
Represents a CS replacement policy.
Cs * getCs() const noexcept
Returns a pointer to the associated CS instance.
Table::const_iterator EntryRef
A reference to a CS entry.
size_t getLimit() const noexcept
Gets hard limit (in number of entries).
signal::Signal< Policy, EntryRef > beforeEvict
Signal emitted when an entry is being evicted.
Least-Recently-Used (LRU) replacement policy.
static const std::string POLICY_NAME
#define NFD_REGISTER_CS_POLICY(P)
Registers a CS policy.