fib-update.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
26 #ifndef NFD_RIB_FIB_UPDATE_HPP
27 #define NFD_RIB_FIB_UPDATE_HPP
28 
29 #include "core/common.hpp"
30 
31 namespace nfd {
32 namespace rib {
33 
37 class FibUpdate
38 {
39 public:
41  : faceId(0)
42  , cost(0)
43  {
44  }
45 
46  bool
47  operator==(const FibUpdate& other) const
48  {
49  return (this->name == other.name &&
50  this->faceId == other.faceId &&
51  this->cost == other.cost &&
52  this->action == other.action);
53  }
54 
55  static FibUpdate
56  createAddUpdate(const Name& name, const uint64_t faceId, const uint64_t cost);
57 
58  static FibUpdate
59  createRemoveUpdate(const Name& name, const uint64_t faceId);
60 
61  enum Action {
64  };
65 
66 public:
67  Name name;
68  uint64_t faceId;
69  uint64_t cost;
71 };
72 
73 inline std::ostream&
74 operator<<(std::ostream& os, const FibUpdate& update)
75 {
76  os << "FibUpdate("
77  << " Name: " << update.name << ", "
78  << "faceId: " << update.faceId << ", ";
79 
80  if (update.action == FibUpdate::ADD_NEXTHOP) {
81  os << "cost: " << update.cost << ", "
82  << "action: ADD_NEXTHOP";
83  }
84  else {
85  os << "action: REMOVE_NEXTHOP";
86  }
87 
88  os << ")";
89 
90  return os;
91 }
92 
93 } // namespace rib
94 } // namespace nfd
95 
96 #endif // NFD_RIB_FIB_UPDATE_HPP
std::ostream & operator<<(std::ostream &os, const FibUpdate &update)
Definition: fib-update.hpp:74
static FibUpdate createAddUpdate(const Name &name, const uint64_t faceId, const uint64_t cost)
Definition: fib-update.cpp:32
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
Definition: algorithm.hpp:32
bool operator==(const FibUpdate &other) const
Definition: fib-update.hpp:47
represents a FIB update
Definition: fib-update.hpp:37
static FibUpdate createRemoveUpdate(const Name &name, const uint64_t faceId)
Definition: fib-update.cpp:45