21 #ifndef _NDN_FIB_IMPL_H_
22 #define _NDN_FIB_IMPL_H_
24 #include "ns3/ndn-fib.h"
25 #include "ns3/ndn-name.h"
27 #include "../../utils/trie/trie-with-policy.h"
28 #include "../../utils/trie/counting-policy.h"
47 EntryImpl (Ptr<Fib> fib,
const Ptr<const Name> &prefix)
72 ndnSIM::smart_pointer_payload_traits< EntryImpl >,
73 ndnSIM::counting_policy_traits >
95 virtual Ptr<fib::Entry>
99 Add (
const Name &prefix, Ptr<Face> face, int32_t metric);
102 Add (
const Ptr<const Name> &prefix, Ptr<Face> face, int32_t metric);
105 Remove (
const Ptr<const Name> &prefix);
114 Print (std::ostream &os)
const;
119 virtual Ptr<const Entry>
125 virtual Ptr<const Entry>
131 virtual Ptr<const Entry>
132 Next (Ptr<const Entry> item)
const;
135 Next (Ptr<Entry> item);
Entry(Ptr< Fib > fib, const Ptr< const Name > &prefix)
Constructor.
virtual void DoDispose()
Perform cleanup.
virtual Ptr< Entry > LongestPrefixMatch(const Interest &interest)
Perform longest prefix match.
FIB entry implementation with with additional references to the base container.
Class implementing FIB functionality.
Structure for FIB table entry, holding indexed list of available faces and their respective metrics...
virtual Ptr< const Entry > Begin() const
Return first element of FIB (no order guaranteed)
Traits for policy that just keeps track of number of elements It's doing a rather expensive job...
virtual void InvalidateAll()
Invalidate all FIB entries.
virtual void NotifyNewAggregate()
Notify when object is aggregated.
virtual Ptr< fib::Entry > Find(const Name &prefix)
Get FIB entry for the prefix (exact match)
virtual Ptr< Entry > Add(const Name &prefix, Ptr< Face > face, int32_t metric)
Add or update FIB entry.
virtual uint32_t GetSize() const
Get number of entries in FIB.
static TypeId GetTypeId()
Interface ID.
virtual void Print(std::ostream &os) const
Print out entries in FIB.
Class implementing FIB functionality.
virtual void RemoveFromAll(Ptr< Face > face)
Remove all references to a face from FIB.
NDN Interest (wire formats are defined in wire)
virtual Ptr< const Entry > End() const
Return item next after last (no order guaranteed)
virtual void Remove(const Ptr< const Name > &prefix)
Remove FIB entry.