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

Provides an in-memory storage with Least Frequently Used (LFU) replacement policy. More...

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

Inheritance diagram for ndn::util::InMemoryStorageLfu:
Collaboration diagram for ndn::util::InMemoryStorageLfu:

Public Member Functions

 InMemoryStorageLfu (size_t limit=10)
 
virtual ~InMemoryStorageLfu ()
 
virtual void afterAccess (InMemoryStorageEntry *entry)
 Update the entry when the entry is returned by the find() function, increment the frequency according to LFU. 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())
 
virtual ~InMemoryStorage ()
 
void insert (const Data &data)
 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...
 

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
 

Detailed Description

Provides an in-memory storage with Least Frequently Used (LFU) replacement policy.

Note
The frequency right now is usage count.
See also
https://en.wikipedia.org/w/index.php?title=Least_frequently_used&oldid=604542656

Definition at line 40 of file in-memory-storage-lfu.hpp.

Constructor & Destructor Documentation

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

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

ndn::util::InMemoryStorageLfu::~InMemoryStorageLfu ( )
virtual

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

Member Function Documentation

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

Update the entry when the entry is returned by the find() function, increment the frequency according to LFU.

Definition at line 68 of file in-memory-storage-lfu.cpp.

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

void ndn::util::InMemoryStorageLfu::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 37 of file in-memory-storage-lfu.cpp.

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

void ndn::util::InMemoryStorageLfu::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 60 of file in-memory-storage-lfu.cpp.

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

Member Data Documentation

NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED ndn::util::InMemoryStorageLfu::__pad0__

Definition at line 55 of file in-memory-storage-lfu.hpp.


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