nfd::fib::Fib Class Reference

represents the Forwarding Information Base (FIB) More...

#include <fib.hpp>

Inheritance diagram for nfd::fib::Fib:
Collaboration diagram for nfd::fib::Fib:

Public Types

typedef boost::transformed_range< name_tree::GetTableEntry< Entry >, const name_tree::RangeRange
 
typedef boost::range_iterator< Range >::type const_iterator
 

Public Member Functions

 Fib (NameTree &nameTree)
 
size_t size () const
 
const EntryfindLongestPrefixMatch (const Name &prefix) const
 performs a longest prefix match More...
 
const EntryfindLongestPrefixMatch (const pit::Entry &pitEntry) const
 performs a longest prefix match More...
 
const EntryfindLongestPrefixMatch (const measurements::Entry &measurementsEntry) const
 performs a longest prefix match More...
 
EntryfindExactMatch (const Name &prefix)
 performs an exact match lookup More...
 
std::pair< Entry *, bool > insert (const Name &prefix)
 inserts a FIB entry for prefix More...
 
void erase (const Name &prefix)
 
void erase (const Entry &entry)
 
void removeNextHop (Entry &entry, const Face &face)
 removes the NextHop record for face More...
 
const_iterator begin () const
 
const_iterator end () const
 

Detailed Description

represents the Forwarding Information Base (FIB)

Definition at line 47 of file fib.hpp.

Member Typedef Documentation

typedef boost::range_iterator<Range>::type nfd::fib::Fib::const_iterator

Definition at line 106 of file fib.hpp.

typedef boost::transformed_range<name_tree::GetTableEntry<Entry>, const name_tree::Range> nfd::fib::Fib::Range

Definition at line 105 of file fib.hpp.

Constructor & Destructor Documentation

nfd::fib::Fib::Fib ( NameTree &  nameTree)
explicit

Definition at line 56 of file fib.cpp.

Member Function Documentation

const_iterator nfd::fib::Fib::begin ( ) const
inline
Returns
an iterator to the beginning
Note
Iteration order is implementation-defined.
Warning
Undefined behavior may occur if a FIB/PIT/Measurements/StrategyChoice entry is inserted or erased during enumeration.

Definition at line 114 of file fib.hpp.

const_iterator nfd::fib::Fib::end ( ) const
inline
Returns
an iterator to the end
See also
begin()

Definition at line 123 of file fib.hpp.

void nfd::fib::Fib::erase ( const Name &  prefix)

Definition at line 128 of file fib.cpp.

void nfd::fib::Fib::erase ( const Entry entry)

Definition at line 137 of file fib.cpp.

Entry * nfd::fib::Fib::findExactMatch ( const Name &  prefix)

performs an exact match lookup

Definition at line 92 of file fib.cpp.

const Entry & nfd::fib::Fib::findLongestPrefixMatch ( const Name &  prefix) const

performs a longest prefix match

Definition at line 74 of file fib.cpp.

const Entry & nfd::fib::Fib::findLongestPrefixMatch ( const pit::Entry pitEntry) const

performs a longest prefix match

This is equivalent to .findLongestPrefixMatch(pitEntry.getName())

Definition at line 80 of file fib.cpp.

const Entry & nfd::fib::Fib::findLongestPrefixMatch ( const measurements::Entry measurementsEntry) const

performs a longest prefix match

This is equivalent to .findLongestPrefixMatch(measurementsEntry.getName())

Definition at line 86 of file fib.cpp.

std::pair< Entry *, bool > nfd::fib::Fib::insert ( const Name &  prefix)

inserts a FIB entry for prefix

If an entry for exact same prefix exists, that entry is returned.

Returns
the entry, and true for new entry or false for existing entry

Definition at line 102 of file fib.cpp.

void nfd::fib::Fib::removeNextHop ( Entry entry,
const Face &  face 
)

removes the NextHop record for face

Definition at line 148 of file fib.cpp.

size_t nfd::fib::Fib::size ( ) const
inline

Definition at line 54 of file fib.hpp.