20 #ifndef NDN_CONTENT_STORE_H
21 #define NDN_CONTENT_STORE_H
23 #include "ns3/ndnSIM/model/ndn-common.hpp"
25 #include "ns3/object.h"
27 #include "ns3/traced-callback.h"
54 class Entry :
public SimpleRefCount<Entry> {
65 Entry(Ptr<ContentStore> cs, shared_ptr<const Data> data);
78 shared_ptr<const Data>
88 Ptr<ContentStore> m_cs;
89 shared_ptr<const Data> m_data;
124 virtual shared_ptr<Data>
125 Lookup(shared_ptr<const Interest> interest) = 0;
136 Add(shared_ptr<const Data> data) = 0;
151 Print(std::ostream& os)
const = 0;
162 virtual Ptr<cs::Entry>
168 virtual Ptr<cs::Entry>
174 virtual Ptr<cs::Entry>
Next(Ptr<cs::Entry>) = 0;
183 static inline Ptr<ContentStore>
187 TracedCallback<shared_ptr<const Interest>,
200 inline Ptr<ContentStore>
209 #include <boost/functional/hash.hpp>
214 return boost::hash_range(component.wireEncode().wire(),
215 component.wireEncode().wire() + component.wireEncode().size());
219 #endif // NDN_CONTENT_STORE_H
virtual shared_ptr< Data > Lookup(shared_ptr< const Interest > interest)=0
Find corresponding CS entry for the given interest.
virtual Ptr< cs::Entry > End()=0
Return item next after last (no order guaranteed)
std::size_t hash_value(const ::ndn::name::Component component)
std::ostream & operator<<(std::ostream &os, const ContentStore &cs)
Entry(Ptr< ContentStore > cs, shared_ptr< const Data > data)
Construct content store entry.
TracedCallback< shared_ptr< const Interest > > m_cacheMissesTrace
trace of cache misses
virtual bool Add(shared_ptr< const Data > data)=0
Add a new content to the content store.
static Ptr< ContentStore > GetContentStore(Ptr< Object > node)
Static call to cheat python bindings.
virtual void Print(std::ostream &os) const =0
Print out content store entries.
virtual Ptr< cs::Entry > Begin()=0
Return first element of content store (no order guaranteed)
TracedCallback< shared_ptr< const Interest >, shared_ptr< const Data > > m_cacheHitsTrace
trace of cache hits
virtual ~ContentStore()
Virtual destructor.
shared_ptr< const Data > GetData() const
Get Data of the stored entry.
ndn cs ContentStore
Copyright (c) 2011-2015 Regents of the University of California.
Ptr< ContentStore > GetContentStore()
Get pointer to access store, to which this entry is added.
const Name & GetName() const
Get prefix of the stored entry.
virtual uint32_t GetSize() const =0
Get number of entries in content store.
static TypeId GetTypeId()
Interface ID.
virtual Ptr< cs::Entry > Next(Ptr< cs::Entry >)=0
Advance the iterator.
Base class for NDN content store.