table: shortcuts between FIB, PIT, Measurements, StrategyChoice
refs #1202
Change-Id: Ie63ab792e840de7e0889d385d3e8ea8a112cb7e5
diff --git a/daemon/table/name-tree.hpp b/daemon/table/name-tree.hpp
index 3d0de70..b51e033 100644
--- a/daemon/table/name-tree.hpp
+++ b/daemon/table/name-tree.hpp
@@ -125,6 +125,11 @@
const name_tree::EntrySelector& entrySelector =
name_tree::AnyEntry()) const;
+ shared_ptr<name_tree::Entry>
+ findLongestPrefixMatch(shared_ptr<name_tree::Entry> entry,
+ const name_tree::EntrySelector& entrySelector =
+ name_tree::AnyEntry()) const;
+
/**
* \brief Resize the hash table size when its load factor reaches a threshold.
* \details As we are currently using a hand-written hash table implementation
@@ -162,6 +167,18 @@
void
dump(std::ostream& output) const;
+ shared_ptr<name_tree::Entry>
+ get(const fib::Entry& fibEntry) const;
+
+ shared_ptr<name_tree::Entry>
+ get(const pit::Entry& pitEntry) const;
+
+ shared_ptr<name_tree::Entry>
+ get(const measurements::Entry& measurementsEntry) const;
+
+ shared_ptr<name_tree::Entry>
+ get(const strategy_choice::Entry& strategeChoiceEntry) const;
+
const_iterator
begin() const;
@@ -260,6 +277,30 @@
return fibEntry.m_nameTreeEntry;
}
+inline shared_ptr<name_tree::Entry>
+NameTree::get(const fib::Entry& fibEntry) const
+{
+ return fibEntry.m_nameTreeEntry;
+}
+
+inline shared_ptr<name_tree::Entry>
+NameTree::get(const pit::Entry& pitEntry) const
+{
+ return pitEntry.m_nameTreeEntry;
+}
+
+inline shared_ptr<name_tree::Entry>
+NameTree::get(const measurements::Entry& measurementsEntry) const
+{
+ return measurementsEntry.m_nameTreeEntry;
+}
+
+inline shared_ptr<name_tree::Entry>
+NameTree::get(const strategy_choice::Entry& strategeChoiceEntry) const
+{
+ return strategeChoiceEntry.m_nameTreeEntry;
+}
+
inline NameTree::const_iterator
NameTree::begin() const
{