table: NameTree::findLongestPrefixMatch accepts all table entry types
This simplifies longest prefix match procedures in FIB and StrategyChoice.
refs #3687
Change-Id: I9aa93232124b91bae7890d065337ac9389e8398e
diff --git a/daemon/table/name-tree.cpp b/daemon/table/name-tree.cpp
index 90e953e..b806cd4 100644
--- a/daemon/table/name-tree.cpp
+++ b/daemon/table/name-tree.cpp
@@ -175,6 +175,26 @@
return nullptr;
}
+template<typename ENTRY>
+Entry*
+NameTree::findLongestPrefixMatch(const ENTRY& tableEntry, const EntrySelector& entrySelector) const
+{
+ const Entry* nte = this->getEntry(tableEntry);
+ BOOST_ASSERT(nte != nullptr);
+ return this->findLongestPrefixMatch(*nte, entrySelector);
+}
+
+template Entry*
+NameTree::findLongestPrefixMatch<fib::Entry>(const fib::Entry&, const EntrySelector&) const;
+
+template Entry*
+NameTree::findLongestPrefixMatch<measurements::Entry>(const measurements::Entry&,
+ const EntrySelector&) const;
+
+template Entry*
+NameTree::findLongestPrefixMatch<strategy_choice::Entry>(const strategy_choice::Entry&,
+ const EntrySelector&) const;
+
Entry*
NameTree::findLongestPrefixMatch(const pit::Entry& pitEntry, const EntrySelector& entrySelector) const
{