Represents in-memory storage. More...
#include <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 435 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 425 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 430 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 409 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 417 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 371 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 398 of file in-memory-storage.cpp.
|
protectedpure virtual |
Removes one Data packet from in-memory storage based on derived class implemented replacement policy.
Please do not use this function directly in any derived class to erase entry in the cache, use eraseHelper instead.
Implemented in ndn::InMemoryStorageLfu, ndn::InMemoryStorageLru, ndn::InMemoryStorageFifo, and ndn::InMemoryStoragePersistent.
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.
|
inlineprotected |
returns current capacity of in-memory storage (in packets)
Definition at line 255 of file in-memory-storage.hpp.
|
inline |
Definition at line 185 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 263 of file in-memory-storage.hpp.
|
protected |
Prints contents of the in-memory storage.
Definition at line 440 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 193 of file in-memory-storage.hpp.
|
static |
Definition at line 320 of file in-memory-storage.hpp.