fib-entry.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
26 #ifndef NFD_DAEMON_TABLE_FIB_ENTRY_HPP
27 #define NFD_DAEMON_TABLE_FIB_ENTRY_HPP
28 
29 #include "fib-nexthop.hpp"
30 
31 namespace nfd {
32 
33 namespace name_tree {
34 class Entry;
35 } // namespace name_tree
36 
37 namespace fib {
38 
47 typedef std::vector<fib::NextHop> NextHopList;
48 
51 class Entry : noncopyable
52 {
53 public:
54  explicit
55  Entry(const Name& prefix);
56 
57  const Name&
58  getPrefix() const
59  {
60  return m_prefix;
61  }
62 
63  const NextHopList&
64  getNextHops() const
65  {
66  return m_nextHops;
67  }
68 
71  bool
72  hasNextHops() const
73  {
74  return !m_nextHops.empty();
75  }
76 
79  bool
80  hasNextHop(const Face& face) const;
81 
86  void
87  addNextHop(Face& face, uint64_t cost);
88 
93  void
94  removeNextHop(const Face& face);
95 
96 private:
100  findNextHop(const Face& face);
101 
104  void
105  sortNextHops();
106 
107 private:
108  Name m_prefix;
109  NextHopList m_nextHops;
110 
111  name_tree::Entry* m_nameTreeEntry;
112 
113  friend class name_tree::Entry;
114 };
115 
116 } // namespace fib
117 } // namespace nfd
118 
119 #endif // NFD_DAEMON_TABLE_FIB_ENTRY_HPP
represents a FIB entry
Definition: fib-entry.hpp:51
Table::const_iterator iterator
Definition: cs-internal.hpp:41
const Name & getPrefix() const
Definition: fib-entry.hpp:58
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
Definition: algorithm.hpp:32
std::vector< fib::NextHop > NextHopList
Definition: fib-entry.hpp:47
an entry in the name tree
const NextHopList & getNextHops() const
Definition: fib-entry.hpp:64
bool hasNextHops() const
Definition: fib-entry.hpp:72