26 #ifndef NFD_DAEMON_FW_FORWARDER_HPP 27 #define NFD_DAEMON_FW_FORWARDER_HPP 79 return m_faceTable.get(
id);
89 m_faceTable.add(face);
95 return *m_unsolicitedDataPolicy;
101 BOOST_ASSERT(policy !=
nullptr);
102 m_unsolicitedDataPolicy = std::move(policy);
113 this->onIncomingInterest(ingress, interest);
123 this->onIncomingData(ingress, data);
133 this->onIncomingNack(ingress, nack);
163 return m_measurements;
169 return m_strategyChoice;
175 return m_deadNonceList;
181 return m_networkRegionTable;
188 onIncomingInterest(
const FaceEndpoint& ingress,
const Interest& interest);
193 onInterestLoop(
const FaceEndpoint& ingress,
const Interest& interest);
199 const shared_ptr<pit::Entry>& pitEntry,
const Interest& interest);
204 onContentStoreHit(
const FaceEndpoint& ingress,
const shared_ptr<pit::Entry>& pitEntry,
205 const Interest& interest,
const Data& data);
210 onOutgoingInterest(
const shared_ptr<pit::Entry>& pitEntry,
216 onInterestFinalize(
const shared_ptr<pit::Entry>& pitEntry);
221 onIncomingData(
const FaceEndpoint& ingress,
const Data& data);
226 onDataUnsolicited(
const FaceEndpoint& ingress,
const Data& data);
236 onIncomingNack(
const FaceEndpoint& ingress,
const lp::Nack& nack);
241 onOutgoingNack(
const shared_ptr<pit::Entry>& pitEntry,
242 const FaceEndpoint& egress,
const lp::NackHeader& nack);
245 onDroppedInterest(
const FaceEndpoint& egress,
const Interest& interest);
251 setExpiryTimer(
const shared_ptr<pit::Entry>& pitEntry, time::milliseconds duration);
258 insertDeadNonceList(
pit::Entry& pitEntry, Face* upstream);
266 template<
class Function>
268 dispatchToStrategy(
pit::Entry& pitEntry, Function trigger)
271 trigger(m_strategyChoice.findEffectiveStrategy(pitEntry));
278 unique_ptr<fw::UnsolicitedDataPolicy> m_unsolicitedDataPolicy;
284 Measurements m_measurements;
285 StrategyChoice m_strategyChoice;
295 #endif // NFD_DAEMON_FW_FORWARDER_HPP
Main class of NFD forwarding engine.
StrategyChoice & getStrategyChoice()
void startProcessData(const FaceEndpoint &ingress, const Data &data)
start incoming Data processing
#define PROTECTED_WITH_TESTS_ELSE_PRIVATE
DeadNonceList & getDeadNonceList()
Represents a face-endpoint pair in the forwarder.
Copyright (c) 2014-2015, Regents of the University of California, Arizona Board of Regents...
stores a collection of producer region names
Represents the Dead Nonce List.
void setUnsolicitedDataPolicy(unique_ptr< fw::UnsolicitedDataPolicy > policy)
determines how to process an unsolicited Data
FaceTable & getFaceTable()
void addFace(shared_ptr< Face > face)
add new Face
counters provided by Forwarder
represents a forwarding strategy
#define VIRTUAL_WITH_TESTS
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
const ForwarderCounters & getCounters() const
fw::UnsolicitedDataPolicy & getUnsolicitedDataPolicy() const
void startProcessInterest(const FaceEndpoint &ingress, const Interest &interest)
start incoming Interest processing
void startProcessNack(const FaceEndpoint &ingress, const lp::Nack &nack)
start incoming Nack processing
uint64_t FaceId
identifies a face
Measurements & getMeasurements()
NetworkRegionTable & getNetworkRegionTable()
Face * getFace(FaceId id) const
get existing Face