22 #ifndef NDN_IMS_IN_MEMORY_STORAGE_HPP    23 #define NDN_IMS_IN_MEMORY_STORAGE_HPP    30 #include <boost/multi_index_container.hpp>    31 #include <boost/multi_index/identity.hpp>    32 #include <boost/multi_index/mem_fun.hpp>    33 #include <boost/multi_index/member.hpp>    34 #include <boost/multi_index/ordered_index.hpp>    35 #include <boost/multi_index/sequenced_index.hpp>    47   typedef boost::multi_index_container<
    49     boost::multi_index::indexed_by<
    52       boost::multi_index::ordered_unique<
    53         boost::multi_index::tag<byFullName>,
    54         boost::multi_index::const_mem_fun<InMemoryStorageEntry, 
const Name&,
    99   class Error : 
public std::runtime_error
   103       : 
std::runtime_error(
"Cannot reduce the capacity of the in-memory storage!")
   119                   size_t limit = std::numeric_limits<size_t>::max());
   152   shared_ptr<const Data>
   166   shared_ptr<const Data>
   180   erase(
const Name& prefix, 
const bool isPrefix = 
true);
   219   afterAccess(InMemoryStorageEntry* entry);
   249   setCapacity(
size_t nMaxPackets);
   265     return size() >= m_capacity;
   303   InMemoryStorageEntry*
   334   std::stack<InMemoryStorageEntry*> m_freeEntries;
   336   unique_ptr<Scheduler> m_scheduler;
   341 #endif // NDN_IMS_IN_MEMORY_STORAGE_HPP 
Copyright (c) 2011-2015 Regents of the University of California. 
 
void erase(const Name &prefix, const bool isPrefix=true)
Deletes in-memory storage entry by prefix by default. 
 
Represents in-memory storage. 
 
#define NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PRIVATE
 
virtual bool evictItem()=0
Removes one Data packet from in-memory storage based on derived class implemented replacement policy...
 
boost::posix_time::time_duration milliseconds(long duration)
 
bool isFull() const 
returns true if the in-memory storage uses up the current capacity, false otherwise ...
 
const Data * operator->()
 
const_iterator & operator++()
 
virtual ~InMemoryStorage()
 
represents an Interest packet 
 
bool operator==(const const_iterator &rhs)
 
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
 
bool operator!=(const const_iterator &rhs)
 
size_t getCapacity() const 
returns current capacity of in-memory storage (in packets) 
 
const Name & getFullName() const 
Returns the full name (including implicit digest) of the Data packet stored in the in-memory storage ...
 
Table::const_iterator iterator
 
virtual void beforeErase(InMemoryStorageEntry *entry)
Update the entry or other data structures before a entry is successfully erased according to derived ...
 
InMemoryStorageEntry * selectChild(const Interest &interest, Cache::index< byFullName >::type::iterator startingPoint) const 
Implements child selector (leftmost, rightmost, undeclared). 
 
InMemoryStorage(size_t limit=std::numeric_limits< size_t >::max())
Create a InMemoryStorage with up to limit entries The InMemoryStorage created through this method wil...
 
Represents an error might be thrown during reduce the current capacity of the in-memory storage throu...
 
shared_ptr< const Data > find(const Interest &interest)
Finds the best match Data for an Interest. 
 
virtual void afterInsert(InMemoryStorageEntry *entry)
Update the entry or other data structures after a entry is successfully inserted according to derived...
 
Represents a self-defined const_iterator for the in-memory storage. 
 
Represents an absolute name. 
 
Represents an in-memory storage entry. 
 
InMemoryStorage::const_iterator begin() const 
Returns begin iterator of the in-memory storage ordering by name with digest. 
 
const_iterator(const Data *ptr, const Cache *cache, Cache::index< byFullName >::type::iterator it)
 
InMemoryStorage::const_iterator end() const 
Returns end iterator of the in-memory storage ordering by name with digest. 
 
void printCache(std::ostream &os) const 
Prints contents of the in-memory storage. 
 
void insert(const Data &data, const time::milliseconds &mustBeFreshProcessingWindow=INFINITE_WINDOW)
Inserts a Data packet. 
 
#define NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED
 
Represents a Data packet. 
 
void eraseImpl(const Name &name)
deletes in-memory storage entries by the Name with implicit digest. 
 
Cache::index< byFullName >::type::iterator findNextFresh(Cache::index< byFullName >::type::iterator startingPoint) const 
Get the next iterator (include startingPoint) that satisfies MustBeFresh requirement. 
 
static const time::milliseconds INFINITE_WINDOW