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

Provides in-memory storage employing LRU replacement policy, of which the least recently used entry will be evict first. More...

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

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

Public Member Functions

 InMemoryStorageLru (size_t limit=10)
 
 InMemoryStorageLru (boost::asio::io_service &ioService, size_t limit=10)
 
virtual ~InMemoryStorageLru ()
 
virtual void afterAccess (InMemoryStorageEntry *entry)
 Update the entry when the entry is returned by the find() function, update the last used time according to LRU. More...
 
virtual void afterInsert (InMemoryStorageEntry *entry)
 Update the entry after a entry is successfully inserted, add it to the cleanupIndex. More...
 
virtual void beforeErase (InMemoryStorageEntry *entry)
 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::util::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 (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 ()
 
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__: virtual bool evictItem()
 
- Public Attributes inherited from ndn::util::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::util::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::util::InMemoryStorage
static const time::milliseconds INFINITE_WINDOW
 

Detailed Description

Provides in-memory storage employing LRU replacement policy, of which the least recently used entry will be evict first.

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

Constructor & Destructor Documentation

§ InMemoryStorageLru() [1/2]

ndn::util::InMemoryStorageLru::InMemoryStorageLru ( size_t  limit = 10)
explicit

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

§ InMemoryStorageLru() [2/2]

ndn::util::InMemoryStorageLru::InMemoryStorageLru ( boost::asio::io_service &  ioService,
size_t  limit = 10 
)

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

§ ~InMemoryStorageLru()

ndn::util::InMemoryStorageLru::~InMemoryStorageLru ( )
virtual

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

Member Function Documentation

§ afterAccess()

void ndn::util::InMemoryStorageLru::afterAccess ( InMemoryStorageEntry entry)
virtual

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

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

References afterInsert(), and beforeErase().

§ afterInsert()

void ndn::util::InMemoryStorageLru::afterInsert ( InMemoryStorageEntry entry)
virtual

Update the entry after a entry is successfully inserted, add it to the cleanupIndex.

Reimplemented from ndn::util::InMemoryStorage.

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

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

Referenced by afterAccess().

§ beforeErase()

void ndn::util::InMemoryStorageLru::beforeErase ( InMemoryStorageEntry entry)
virtual

Update the entry or other data structures before a entry is successfully erased, erase it from the cleanupIndex.

Reimplemented from ndn::util::InMemoryStorage.

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

References ndn::util::InMemoryStorage::find().

Referenced by afterAccess().

Member Data Documentation

§ __pad0__

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED ndn::util::InMemoryStorageLru::__pad0__

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


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