NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
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
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition: common.hpp:40
void fail(const scheduler::EventId &event)
switch the propagation status to PROPAGATE_FAIL, and then set the rePropagateEvent to event for retry...
Opaque handle for a scheduled event.
std::ostream & operator<<(std::ostream &os, const FibUpdate &update)
Definition: fib-update.hpp:74
PropagatedEntry & setSigningIdentity(const Name &identity)
set the signing identity
PropagatedEntry & operator=(const PropagatedEntry &other)=delete
const Name & getSigningIdentity() const
get the signing identity
void initialize()
cancel the events of re-sending propagation commands.
bool isPropagateFail() const
check whether this entry has failed in propagating.
bool isPropagating() const
check whether this entry is being propagated.
Copyright (c) 2011-2015 Regents of the University of California.
Definition: ndn-common.hpp:40
Cancels an event automatically upon destruction.
Definition: scheduler.hpp:60
bool isPropagated() const
check whether this entry has been successfully propagated.
Represents an absolute name.
Definition: name.hpp:42
bool isNew() const
check whether this entry is a new entry.
void succeed(const scheduler::EventId &event)
switch the propagation status to PROPAGATED, and set the rePropagateEvent to event for refresh...
has been propagated successfully
represents an entry for prefix propagation.
void startPropagation()
switch the propagation status to PROPAGATING.