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
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
bool isPropagateFail() const
check whether this entry has failed in propagating.
represents an entry for prefix propagation.
void startPropagation()
switch the propagation status to PROPAGATING.
std::ostream & operator<<(std::ostream &os, const FibUpdate &update)
Definition: fib-update.hpp:74
const Name & getSigningIdentity() const
get the signing identity
cancels an event automatically upon destruction
Definition: scheduler.hpp:54
bool isPropagated() const
check whether this entry has been successfully propagated.
void initialize()
cancel the events of re-sending propagation commands.
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
Definition: algorithm.hpp:32
PropagatedEntry()
void fail(const scheduler::EventId &event)
switch the propagation status to PROPAGATE_FAIL, and then set the rePropagateEvent to event for retry...
void succeed(const scheduler::EventId &event)
switch the propagation status to PROPAGATED, and set the rePropagateEvent to event for refresh...
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition: common.hpp:39
PropagatedEntry & setSigningIdentity(const Name &identity)
set the signing identity
bool isNew() const
check whether this entry is a new entry.
has been propagated successfully
PropagatedEntry & operator=(const PropagatedEntry &other)=delete
bool isPropagating() const
check whether this entry is being propagated.