NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::InMemoryStorageLru Class Reference

Provides in-memory storage employing Least Recently Used (LRU) replacement policy. More...

#include <in-memory-storage-lru.hpp>

Inheritance diagram for ndn::InMemoryStorageLru:
Collaboration diagram for ndn::InMemoryStorageLru:

Public Member Functions

 InMemoryStorageLru (size_t limit=16)
 
 InMemoryStorageLru (DummyIoService &ioService, size_t limit=16)
 
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...
 
- Public Member Functions inherited from ndn::InMemoryStorage
 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 (DummyIoService &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 ()
 
void insert (const Data &data, const time::milliseconds &mustBeFreshProcessingWindow=INFINITE_WINDOW)
 Inserts a Data packet. More...
 
shared_ptr< const Datafind (const Interest &interest)
 Finds the best match Data for an Interest. More...
 
shared_ptr< const Datafind (const Name &name)
 Finds the best match Data for a Name with or without the implicit digest. More...
 
void erase (const Name &prefix, const bool isPrefix=true)
 Deletes in-memory storage entry by prefix by default. More...
 
size_t getLimit () const
 
size_t size () const
 
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...
 
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 eraseImpl (const Name &name)
 deletes in-memory storage entries by the Name with implicit digest. More...
 
void printCache (std::ostream &os) const
 Prints contents of the in-memory storage. More...
 
InMemoryStorageEntryselectChild (const Interest &interest, Cache::index< byFullName >::type::iterator startingPoint) const
 Implements child selector (leftmost, rightmost, undeclared). More...
 
Cache::index< byFullName >::type::iterator findNextFresh (Cache::index< byFullName >::type::iterator startingPoint) const
 Get the next iterator (include startingPoint) that satisfies MustBeFresh requirement. More...
 

Public Attributes

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED __pad0__: bool evictItem() override
 
- Public Attributes inherited from ndn::InMemoryStorage
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED __pad0__: virtual void afterAccess(InMemoryStorageEntry* entry)
 
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED __pad1__: void setCapacity(size_t nMaxPackets)
 
NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE __pad2__: Cache::iterator freeEntry(Cache::iterator it)
 

Additional Inherited Members

- Public Types inherited from ndn::InMemoryStorage
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
 
- Static Public Attributes inherited from ndn::InMemoryStorage
static const time::milliseconds INFINITE_WINDOW
 

Detailed Description

Provides in-memory storage employing Least Recently Used (LRU) replacement policy.

Definition at line 37 of file in-memory-storage-lru.hpp.

Constructor & Destructor Documentation

◆ InMemoryStorageLru() [1/2]

ndn::InMemoryStorageLru::InMemoryStorageLru ( size_t  limit = 16)
explicit

Definition at line 26 of file in-memory-storage-lru.cpp.

◆ InMemoryStorageLru() [2/2]

ndn::InMemoryStorageLru::InMemoryStorageLru ( DummyIoService ioService,
size_t  limit = 16 
)

Definition at line 31 of file in-memory-storage-lru.cpp.

Member Function Documentation

◆ afterAccess()

void ndn::InMemoryStorageLru::afterAccess ( InMemoryStorageEntry entry)
override

Update the entry when the entry is returned by the find() function, update the last used time according to LRU.

Definition at line 67 of file in-memory-storage-lru.cpp.

References afterInsert(), and beforeErase().

◆ afterInsert()

void ndn::InMemoryStorageLru::afterInsert ( InMemoryStorageEntry entry)
overridevirtual

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.

References ndn::InMemoryStorage::begin(), ndn::InMemoryStorage::erase(), ndn::InMemoryStorage::eraseImpl(), ndn::InMemoryStorage::evictItem(), and ndn::InMemoryStorage::size().

Referenced by afterAccess().

◆ beforeErase()

void ndn::InMemoryStorageLru::beforeErase ( InMemoryStorageEntry entry)
overridevirtual

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.

References ndn::InMemoryStorage::find().

Referenced by afterAccess().

Member Data Documentation

◆ __pad0__

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED ndn::InMemoryStorageLru::__pad0__

Definition at line 51 of file in-memory-storage-lru.hpp.


The documentation for this class was generated from the following files: