Provides an in-memory storage with Least Frequently Used (LFU) replacement policy. More...
#include <in-memory-storage-lfu.hpp>
Public Types | |
typedef boost::multi_index_container< InMemoryStorageEntry *, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< boost::multi_index::tag< byFullName >, boost::multi_index::const_mem_fun< InMemoryStorageEntry, const Name &,&InMemoryStorageEntry::getFullName >, std::less< Name > > > > | Cache |
Public Member Functions | |
InMemoryStorageLfu (size_t limit=10) | |
InMemoryStorageLfu (boost::asio::io_service &ioService, size_t limit=10) | |
InMemoryStorage::const_iterator | begin () const |
Returns begin iterator of the in-memory storage ordering by name with digest. More... | |
InMemoryStorage::const_iterator | end () const |
Returns end iterator of the in-memory storage ordering by name with digest. More... | |
void | erase (const Name &prefix, const bool isPrefix=true) |
Deletes in-memory storage entry by prefix by default. More... | |
shared_ptr< const Data > | find (const Interest &interest) |
Finds the best match Data for an Interest. More... | |
shared_ptr< const Data > | find (const Name &name) |
Finds the best match Data for a Name with or without the implicit digest. More... | |
size_t | getLimit () const |
void | insert (const Data &data, const time::milliseconds &mustBeFreshProcessingWindow=INFINITE_WINDOW) |
Inserts a Data packet. More... | |
size_t | size () const |
Static Public Attributes | |
static const time::milliseconds | INFINITE_WINDOW |
Protected Member Functions | |
void | afterAccess (InMemoryStorageEntry *entry) override |
Update the entry when the entry is returned by the find() function, increment the frequency according to LFU. More... | |
void | afterInsert (InMemoryStorageEntry *entry) override |
Update the entry after a entry is successfully inserted, add it to the cleanupIndex. More... | |
void | beforeErase (InMemoryStorageEntry *entry) override |
Update the entry or other data structures before a entry is successfully erased, erase it from the cleanupIndex. More... | |
void | eraseImpl (const Name &name) |
deletes in-memory storage entries by the Name with implicit digest. More... | |
bool | evictItem () override |
Removes one Data packet from in-memory storage based on LFU, i.e. More... | |
size_t | getCapacity () const |
returns current capacity of in-memory storage (in packets) More... | |
bool | isFull () const |
returns true if the in-memory storage uses up the current capacity, false otherwise More... | |
void | printCache (std::ostream &os) const |
Prints contents of the in-memory storage. More... | |
void | setCapacity (size_t nMaxPackets) |
sets current capacity of in-memory storage (in packets) More... | |
Provides an in-memory storage with Least Frequently Used (LFU) replacement policy.
Definition at line 39 of file in-memory-storage-lfu.hpp.
|
inherited |
Definition at line 45 of file in-memory-storage.hpp.
|
explicit |
Definition at line 26 of file in-memory-storage-lfu.cpp.
|
explicit |
Definition at line 31 of file in-memory-storage-lfu.cpp.
|
overrideprotectedvirtual |
Update the entry when the entry is returned by the find() function, increment the frequency according to LFU.
Reimplemented from ndn::InMemoryStorage.
Definition at line 68 of file in-memory-storage-lfu.cpp.
|
overrideprotectedvirtual |
Update the entry after a entry is successfully inserted, add it to the cleanupIndex.
Reimplemented from ndn::InMemoryStorage.
Definition at line 37 of file in-memory-storage-lfu.cpp.
|
overrideprotectedvirtual |
Update the entry or other data structures before a entry is successfully erased, erase it from the cleanupIndex.
Reimplemented from ndn::InMemoryStorage.
Definition at line 60 of file in-memory-storage-lfu.cpp.
|
inherited |
Returns begin iterator of the in-memory storage ordering by name with digest.
Definition at line 409 of file in-memory-storage.cpp.
|
inherited |
Returns end iterator of the in-memory storage ordering by name with digest.
Definition at line 417 of file in-memory-storage.cpp.
|
inherited |
Deletes in-memory storage entry by prefix by default.
prefix | Exact name of a prefix of the data to remove |
isPrefix | If false, the function will only delete the entry completely matched with the prefix according to canonical ordering. For this case, user should substitute the prefix with full name. |
Definition at line 371 of file in-memory-storage.cpp.
|
protectedinherited |
deletes in-memory storage entries by the Name with implicit digest.
This is the function one should use to erase entry in the cache in derived class. It won't invoke beforeErase(shared_ptr<Entry>).
Definition at line 398 of file in-memory-storage.cpp.
|
overrideprotectedvirtual |
Removes one Data packet from in-memory storage based on LFU, i.e.
evict the least frequently accessed Data packet
Implements ndn::InMemoryStorage.
Definition at line 47 of file in-memory-storage-lfu.cpp.
Finds the best match Data for an Interest.
Definition at line 220 of file in-memory-storage.cpp.
Finds the best match Data for a Name with or without the implicit digest.
If packets with the same name but different digests exist and the Name supplied is the one without implicit digest, a packet will be arbitrarily chosen to return.
Definition at line 201 of file in-memory-storage.cpp.
|
inlineprotectedinherited |
returns current capacity of in-memory storage (in packets)
Definition at line 255 of file in-memory-storage.hpp.
|
inlineinherited |
Definition at line 185 of file in-memory-storage.hpp.
|
inherited |
Inserts a Data packet.
data | the packet to insert, must be signed and have wire encoding |
mustBeFreshProcessingWindow | Beyond this time period after the data is inserted, the data can only be used to answer interest without MustBeFresh selector. |
Definition at line 161 of file in-memory-storage.cpp.
|
inlineprotectedinherited |
returns true if the in-memory storage uses up the current capacity, false otherwise
Definition at line 263 of file in-memory-storage.hpp.
|
protectedinherited |
Prints contents of the in-memory storage.
Definition at line 440 of file in-memory-storage.cpp.
|
protectedinherited |
sets current capacity of in-memory storage (in packets)
Definition at line 131 of file in-memory-storage.cpp.
|
inlineinherited |
Definition at line 193 of file in-memory-storage.hpp.
|
staticinherited |
Definition at line 320 of file in-memory-storage.hpp.