nfd::measurements::Measurements Class Reference

The Measurements table. More...

#include <daemon/table/measurements.hpp>

+ Inheritance diagram for nfd::measurements::Measurements:
+ Collaboration diagram for nfd::measurements::Measurements:

Public Member Functions

 Measurements (NameTree &nameTree)
 
void extendLifetime (Entry &entry, const time::nanoseconds &lifetime)
 Extend lifetime of an entry. More...
 
EntryfindExactMatch (const Name &name) const
 Perform an exact match. More...
 
EntryfindLongestPrefixMatch (const Name &name, const EntryPredicate &pred=AnyEntry()) const
 Perform a longest prefix match for name. More...
 
EntryfindLongestPrefixMatch (const pit::Entry &pitEntry, const EntryPredicate &pred=AnyEntry()) const
 Perform a longest prefix match for pitEntry.getName(). More...
 
Entryget (const fib::Entry &fibEntry)
 Equivalent to get(fibEntry.getPrefix()). More...
 
Entryget (const Name &name)
 Find or insert an entry by name. More...
 
Entryget (const pit::Entry &pitEntry)
 Equivalent to get(pitEntry.getName(), std::min(pitEntry.getName().size(), getMaxDepth())). More...
 
EntrygetParent (const Entry &child)
 Find or insert a parent entry. More...
 
size_t size () const
 

Static Public Member Functions

static time::nanoseconds getInitialLifetime ()
 
static constexpr size_t getMaxDepth ()
 Maximum depth of a Measurements entry. More...
 

Detailed Description

The Measurements table.

The Measurements table is a data structure for forwarding strategies to store per name prefix measurements. A strategy can access this table via fw::Strategy::getMeasurements(), and then place any object that derive from StrategyInfo type onto Measurements entries.

Definition at line 83 of file measurements.hpp.

Constructor & Destructor Documentation

◆ Measurements()

nfd::measurements::Measurements::Measurements ( NameTree nameTree)
explicit

Definition at line 34 of file measurements.cpp.

Member Function Documentation

◆ extendLifetime()

void nfd::measurements::Measurements::extendLifetime ( Entry entry,
const time::nanoseconds &  lifetime 
)

Extend lifetime of an entry.

The entry will be kept until at least now()+lifetime.

Definition at line 126 of file measurements.cpp.

◆ findExactMatch()

Entry * nfd::measurements::Measurements::findExactMatch ( const Name &  name) const

Perform an exact match.

Definition at line 119 of file measurements.cpp.

◆ findLongestPrefixMatch() [1/2]

Entry * nfd::measurements::Measurements::findLongestPrefixMatch ( const Name &  name,
const EntryPredicate pred = AnyEntry() 
) const

Perform a longest prefix match for name.

Definition at line 107 of file measurements.cpp.

◆ findLongestPrefixMatch() [2/2]

Entry * nfd::measurements::Measurements::findLongestPrefixMatch ( const pit::Entry pitEntry,
const EntryPredicate pred = AnyEntry() 
) const

Perform a longest prefix match for pitEntry.getName().

Definition at line 113 of file measurements.cpp.

◆ get() [1/3]

Entry & nfd::measurements::Measurements::get ( const fib::Entry fibEntry)

Equivalent to get(fibEntry.getPrefix()).

Definition at line 65 of file measurements.cpp.

◆ get() [2/3]

Entry & nfd::measurements::Measurements::get ( const Name &  name)

Find or insert an entry by name.

An entry name can have at most getMaxDepth() components. If name exceeds this limit, it is truncated to the first getMaxDepth() components.

Definition at line 58 of file measurements.cpp.

◆ get() [3/3]

Entry & nfd::measurements::Measurements::get ( const pit::Entry pitEntry)

Equivalent to get(pitEntry.getName(), std::min(pitEntry.getName().size(), getMaxDepth())).

Definition at line 72 of file measurements.cpp.

◆ getInitialLifetime()

static time::nanoseconds nfd::measurements::Measurements::getInitialLifetime ( )
inlinestatic

Definition at line 140 of file measurements.hpp.

◆ getMaxDepth()

static constexpr size_t nfd::measurements::Measurements::getMaxDepth ( )
inlinestaticconstexpr

Maximum depth of a Measurements entry.

Definition at line 92 of file measurements.hpp.

◆ getParent()

Entry * nfd::measurements::Measurements::getParent ( const Entry child)

Find or insert a parent entry.

Return values
nullptrchild is the root entry
Returns
get(child.getName().getPrefix(-1))

Definition at line 79 of file measurements.cpp.

◆ size()

size_t nfd::measurements::Measurements::size ( ) const
inline

Definition at line 153 of file measurements.hpp.