Provides in-memory storage employing Least Recently Used (LRU) replacement policy. More...
#include <ndn-cxx/ims/in-memory-storage-lru.hpp>
 Inheritance diagram for ndn::InMemoryStorageLru:
 Inheritance diagram for ndn::InMemoryStorageLru: Collaboration diagram for ndn::InMemoryStorageLru:
 Collaboration diagram for ndn::InMemoryStorageLru:| 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 | |
| InMemoryStorageLru (size_t limit=16) | |
| InMemoryStorageLru (boost::asio::io_service &ioService, size_t limit=16) | |
| 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, update the last used time according to LRU.  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 LRU, 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 in-memory storage employing Least Recently Used (LRU) replacement policy.
Definition at line 37 of file in-memory-storage-lru.hpp.
| 
 | inherited | 
Definition at line 45 of file in-memory-storage.hpp.
| 
 | explicit | 
Definition at line 26 of file in-memory-storage-lru.cpp.
| 
 | explicit | 
Definition at line 31 of file in-memory-storage-lru.cpp.
| 
 | overrideprotectedvirtual | 
Update the entry when the entry is returned by the find() function, update the last used time according to LRU.
Reimplemented from ndn::InMemoryStorage.
Definition at line 67 of file in-memory-storage-lru.cpp.
| 
 | overrideprotectedvirtual | 
Update the entry after a entry is successfully inserted, add it to the cleanupIndex.
Reimplemented from ndn::InMemoryStorage.
Definition at line 38 of file in-memory-storage-lru.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 59 of file in-memory-storage-lru.cpp.
| 
 | inherited | 
Returns begin iterator of the in-memory storage ordering by name with digest.
Definition at line 356 of file in-memory-storage.cpp.
| 
 | inherited | 
Returns end iterator of the in-memory storage ordering by name with digest.
Definition at line 363 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 321 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 346 of file in-memory-storage.cpp.
| 
 | overrideprotectedvirtual | 
Removes one Data packet from in-memory storage based on LRU, i.e.
evict the least recently accessed Data packet
Implements ndn::InMemoryStorage.
Definition at line 46 of file in-memory-storage-lru.cpp.
Finds the best match Data for an Interest.
Definition at line 217 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 198 of file in-memory-storage.cpp.
| 
 | inlineprotectedinherited | 
returns current capacity of in-memory storage (in packets)
Definition at line 261 of file in-memory-storage.hpp.
| 
 | inlineinherited | 
Definition at line 191 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 269 of file in-memory-storage.hpp.
| 
 | protectedinherited | 
Prints contents of the in-memory storage.
Definition at line 385 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 199 of file in-memory-storage.hpp.
| 
 | staticinherited | 
Definition at line 326 of file in-memory-storage.hpp.