Represents in-memory storage. More...
#include <ndn-cxx/ims/in-memory-storage.hpp>
Classes | |
class | const_iterator |
Represents a self-defined const_iterator for the in-memory storage. More... | |
class | Error |
Represents an error might be thrown during reduce the current capacity of the in-memory storage through function setCapacity(size_t nMaxPackets). More... | |
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 | |
InMemoryStorage (size_t limit=std::numeric_limits< size_t >::max()) | |
Create a InMemoryStorage with up to limit entries The InMemoryStorage created through this method will ignore MustBeFresh in interest processing. More... | |
InMemoryStorage (boost::asio::io_service &ioService, size_t limit=std::numeric_limits< size_t >::max()) | |
Create a InMemoryStorage with up to limit entries The InMemoryStorage created through this method will handle MustBeFresh in interest processing. More... | |
virtual | ~InMemoryStorage () |
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 | |
virtual void | afterAccess (InMemoryStorageEntry *entry) |
Update the entry when the entry is returned by the find() function according to derived class implemented replacement policy. More... | |
virtual void | afterInsert (InMemoryStorageEntry *entry) |
Update the entry or other data structures after a entry is successfully inserted according to derived class implemented replacement policy. More... | |
virtual void | beforeErase (InMemoryStorageEntry *entry) |
Update the entry or other data structures before a entry is successfully erased according to derived class implemented replacement policy. More... | |
void | eraseImpl (const Name &name) |
deletes in-memory storage entries by the Name with implicit digest. More... | |
virtual bool | evictItem ()=0 |
Removes one Data packet from in-memory storage based on derived class implemented replacement policy. 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... | |
Represents in-memory storage.
Definition at line 41 of file in-memory-storage.hpp.
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> > > > ndn::InMemoryStorage::Cache |
Definition at line 45 of file in-memory-storage.hpp.
|
explicit |
Create a InMemoryStorage with up to limit
entries The InMemoryStorage created through this method will ignore MustBeFresh in interest processing.
Definition at line 84 of file in-memory-storage.cpp.
|
explicit |
Create a InMemoryStorage with up to limit
entries The InMemoryStorage created through this method will handle MustBeFresh in interest processing.
Definition at line 91 of file in-memory-storage.cpp.
|
virtual |
Definition at line 114 of file in-memory-storage.cpp.
|
protectedvirtual |
Update the entry when the entry is returned by the find() function according to derived class implemented replacement policy.
Reimplemented in ndn::InMemoryStorageLfu, and ndn::InMemoryStorageLru.
Definition at line 413 of file in-memory-storage.cpp.
|
protectedvirtual |
Update the entry or other data structures after a entry is successfully inserted according to derived class implemented replacement policy.
Reimplemented in ndn::InMemoryStorageLfu, ndn::InMemoryStorageLru, and ndn::InMemoryStorageFifo.
Definition at line 403 of file in-memory-storage.cpp.
|
protectedvirtual |
Update the entry or other data structures before a entry is successfully erased according to derived class implemented replacement policy.
Reimplemented in ndn::InMemoryStorageLfu, ndn::InMemoryStorageLru, and ndn::InMemoryStorageFifo.
Definition at line 408 of file in-memory-storage.cpp.
InMemoryStorage::const_iterator ndn::InMemoryStorage::begin | ( | ) | const |
Returns begin iterator of the in-memory storage ordering by name with digest.
Definition at line 389 of file in-memory-storage.cpp.
InMemoryStorage::const_iterator ndn::InMemoryStorage::end | ( | ) | const |
Returns end iterator of the in-memory storage ordering by name with digest.
Definition at line 396 of file in-memory-storage.cpp.
void ndn::InMemoryStorage::erase | ( | const Name & | prefix, |
const bool | isPrefix = true |
||
) |
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 354 of file in-memory-storage.cpp.
|
protected |
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 379 of file in-memory-storage.cpp.
|
protectedpure virtual |
Removes one Data packet from in-memory storage based on derived class implemented replacement policy.
Implemented in ndn::InMemoryStorageLfu, ndn::InMemoryStorageLru, ndn::InMemoryStorageFifo, and ndn::InMemoryStoragePersistent.
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.
|
inlineprotected |
returns current capacity of in-memory storage (in packets)
Definition at line 261 of file in-memory-storage.hpp.
|
inline |
Definition at line 191 of file in-memory-storage.hpp.
void ndn::InMemoryStorage::insert | ( | const Data & | data, |
const time::milliseconds & | mustBeFreshProcessingWindow = INFINITE_WINDOW |
||
) |
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.
|
inlineprotected |
returns true if the in-memory storage uses up the current capacity, false otherwise
Definition at line 269 of file in-memory-storage.hpp.
|
protected |
Prints contents of the in-memory storage.
Definition at line 418 of file in-memory-storage.cpp.
|
protected |
sets current capacity of in-memory storage (in packets)
Definition at line 131 of file in-memory-storage.cpp.
|
inline |
Definition at line 199 of file in-memory-storage.hpp.
|
static |
Definition at line 326 of file in-memory-storage.hpp.