propagated-entry.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
26 #ifndef NFD_RIB_PROPAGATED_ENTRY_HPP
27 #define NFD_RIB_PROPAGATED_ENTRY_HPP
28 
29 #include "core/scheduler.hpp"
30 
31 namespace nfd {
32 namespace rib {
33 
34 enum class PropagationStatus {
36  NEW,
40  PROPAGATED,
43 };
44 
45 void
46 operator<<(std::ostream& out, PropagationStatus status);
47 
57 {
58 public:
60 
64  PropagatedEntry(const PropagatedEntry& other);
65 
67  operator=(const PropagatedEntry& other) = delete;
68 
73  setSigningIdentity(const Name& identity);
74 
80  const Name&
81  getSigningIdentity() const;
82 
88  void
89  startPropagation();
90 
97  void
98  succeed(const scheduler::EventId& event);
99 
106  void
107  fail(const scheduler::EventId& event);
108 
114  void
115  initialize();
116 
122  bool
123  isNew() const;
124 
130  bool
131  isPropagating() const;
132 
138  bool
139  isPropagated() const;
140 
146  bool
147  isPropagateFail() const;
148 
150  Name m_signingIdentity;
151  scheduler::ScopedEventId m_rePropagateEvent;
152  PropagationStatus m_propagationStatus;
153 };
154 
155 } // namespace rib
156 } // namespace nfd
157 
158 #endif // NFD_RIB_PROPAGATED_ENTRY_HPP
represents an entry for prefix propagation.
std::ostream & operator<<(std::ostream &os, const FibUpdate &update)
Definition: fib-update.hpp:74
cancels an event automatically upon destruction
Definition: scheduler.hpp:56
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
Definition: algorithm.hpp:32
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition: common.hpp:40
has been propagated successfully