fib: implicitly delete empty Entry
Fib::removeNextHopFromAllEntries automatically deletes fib::Entry
if the last nexthop record is being removed.
refs #1341
Change-Id: I36d42fe8f9fc8f03d194f845020aff408cd70488
diff --git a/daemon/table/fib-entry.hpp b/daemon/table/fib-entry.hpp
index aac8fc5..48b09d6 100644
--- a/daemon/table/fib-entry.hpp
+++ b/daemon/table/fib-entry.hpp
@@ -11,6 +11,11 @@
namespace nfd {
+class NameTree;
+namespace name_tree {
+class Entry;
+}
+
namespace fib {
/** \class NextHopList
@@ -37,6 +42,10 @@
const NextHopList&
getNextHops() const;
+ /// whether this Entry has any nexthop
+ bool
+ hasNextHops() const;
+
bool
hasNextHop(shared_ptr<Face> face) const;
@@ -56,6 +65,10 @@
private:
Name m_prefix;
NextHopList m_nextHops;
+
+ shared_ptr<name_tree::Entry> m_nameTreeEntry;
+ friend class nfd::NameTree;
+ friend class nfd::name_tree::Entry;
};
@@ -71,6 +84,12 @@
return m_nextHops;
}
+inline bool
+Entry::hasNextHops() const
+{
+ return !m_nextHops.empty();
+}
+
} // namespace fib
} // namespace nfd