represents the Strategy Choice table More...
#include <strategy-choice.hpp>
Classes | |
class | InsertResult |
Public Types | |
typedef boost::transformed_range< name_tree::GetTableEntry< Entry >, const name_tree::Range > | Range |
typedef boost::range_iterator< Range >::type | const_iterator |
Public Member Functions | |
StrategyChoice (Forwarder &forwarder) | |
size_t | size () const |
void | setDefaultStrategy (const Name &strategyName) |
set the default strategy More... | |
InsertResult | insert (const Name &prefix, const Name &strategyName) |
set strategy of prefix to be strategyName More... | |
void | erase (const Name &prefix) |
make prefix to inherit strategy from its parent More... | |
std::pair< bool, Name > | get (const Name &prefix) const |
get strategy Name of prefix More... | |
fw::Strategy & | findEffectiveStrategy (const Name &prefix) const |
get effective strategy for prefix More... | |
fw::Strategy & | findEffectiveStrategy (const pit::Entry &pitEntry) const |
get effective strategy for pitEntry More... | |
fw::Strategy & | findEffectiveStrategy (const measurements::Entry &measurementsEntry) const |
get effective strategy for measurementsEntry More... | |
const_iterator | begin () const |
const_iterator | end () const |
template<typename K > | |
Strategy & | findEffectiveStrategyImpl (const K &key) const |
represents the Strategy Choice table
The Strategy Choice table maintains available Strategy types, and associates Name prefixes with Strategy types.
Each strategy is identified by a strategyName. It's recommended to include a version number as the last component of strategyName.
A Name prefix is owned by a strategy if a longest prefix match on the Strategy Choice table returns that strategy.
Definition at line 51 of file strategy-choice.hpp.
typedef boost::transformed_range<name_tree::GetTableEntry<Entry>, const name_tree::Range> nfd::strategy_choice::StrategyChoice::Range |
Definition at line 148 of file strategy-choice.hpp.
typedef boost::range_iterator<Range>::type nfd::strategy_choice::StrategyChoice::const_iterator |
Definition at line 149 of file strategy-choice.hpp.
|
explicit |
Definition at line 48 of file strategy-choice.cpp.
|
inline |
Definition at line 58 of file strategy-choice.hpp.
References setDefaultStrategy().
void nfd::strategy_choice::StrategyChoice::setDefaultStrategy | ( | const Name & | strategyName | ) |
set the default strategy
This must be called by forwarder constructor.
Definition at line 56 of file strategy-choice.cpp.
References ns3::ndn::Name, and NFD_LOG_INFO.
Referenced by size().
StrategyChoice::InsertResult nfd::strategy_choice::StrategyChoice::insert | ( | const Name & | prefix, |
const Name & | strategyName | ||
) |
set strategy of prefix
to be strategyName
prefix | the name prefix to change strategy |
strategyName | strategy instance name, may contain version and parameters; strategy must have been registered |
Definition at line 70 of file strategy-choice.cpp.
References findEffectiveStrategy(), nfd::strategy_choice::Entry::getStrategy(), nfd::name_tree::Entry::getStrategyChoiceEntry(), nfd::strategy_choice::Entry::getStrategyInstanceName(), NFD_LOG_ERROR, NFD_LOG_TRACE, nfd::strategy_choice::Entry::setStrategy(), nfd::name_tree::Entry::setStrategyChoiceEntry(), ndn::Name::size(), and nfd::fw::Strategy.
Referenced by nfd::StrategyChoiceManager::StrategyChoiceManager().
void nfd::strategy_choice::StrategyChoice::erase | ( | const Name & | prefix | ) |
make prefix to inherit strategy from its parent
not allowed for root prefix (ndn:/)
Definition at line 140 of file strategy-choice.cpp.
References findEffectiveStrategy(), ndn::Name::getPrefix(), nfd::strategy_choice::Entry::getStrategy(), ndn::Name::size(), and nfd::fw::Strategy.
Referenced by nfd::StrategyChoiceManager::StrategyChoiceManager().
get strategy Name of prefix
Definition at line 165 of file strategy-choice.cpp.
References nfd::name_tree::Entry::getStrategyChoiceEntry(), nfd::strategy_choice::Entry::getStrategyInstanceName(), ns3::ndn::Name, and nfd::fw::Strategy.
Referenced by nfd::StrategyChoiceManager::StrategyChoiceManager().
Strategy & nfd::strategy_choice::StrategyChoice::findEffectiveStrategy | ( | const Name & | prefix | ) | const |
get effective strategy for prefix
Definition at line 190 of file strategy-choice.cpp.
References nfd::fw::Strategy.
Strategy & nfd::strategy_choice::StrategyChoice::findEffectiveStrategy | ( | const pit::Entry & | pitEntry | ) | const |
get effective strategy for pitEntry
This is equivalent to .findEffectiveStrategy(pitEntry.getName())
Definition at line 196 of file strategy-choice.cpp.
References nfd::fw::Strategy.
Strategy & nfd::strategy_choice::StrategyChoice::findEffectiveStrategy | ( | const measurements::Entry & | measurementsEntry | ) | const |
get effective strategy for measurementsEntry
This is equivalent to .findEffectiveStrategy(measurementsEntry.getName())
Definition at line 202 of file strategy-choice.cpp.
|
inline |
Definition at line 157 of file strategy-choice.hpp.
|
inline |
Definition at line 166 of file strategy-choice.hpp.
References nfd::name_tree::NameTree, nfd::strategy_choice::StrategyChoice::InsertResult::operator<<, and nfd::strategy_choice::StrategyChoice.
Strategy& nfd::strategy_choice::StrategyChoice::findEffectiveStrategyImpl | ( | const K & | key | ) | const |
Definition at line 182 of file strategy-choice.cpp.
References nfd::strategy_choice::Entry::getStrategy(), nfd::name_tree::Entry::getStrategyChoiceEntry(), nfd::strategy_choice::nteHasStrategyChoiceEntry(), and nfd::fw::Strategy.