36 : afterAddFace(forwarder.getFaceTable().afterAdd)
37 , beforeRemoveFace(forwarder.getFaceTable().beforeRemove)
39 , m_forwarder(forwarder)
40 , m_measurements(m_forwarder.getMeasurements(),
41 m_forwarder.getStrategyChoice(), *this)
51 const Face& inFace,
const Data& data)
53 NFD_LOG_DEBUG(
"beforeSatisfyInterest pitEntry=" << pitEntry->getName() <<
54 " inFace=" << inFace.getId() <<
" data=" << data.
getName());
60 NFD_LOG_DEBUG(
"beforeExpirePendingInterest pitEntry=" << pitEntry->getName());
65 shared_ptr<fib::Entry> fibEntry, shared_ptr<pit::Entry> pitEntry)
68 " pitEntry=" << pitEntry->getName());
73 std::initializer_list<const Face*> exceptFaces)
76 std::unordered_set<const Face*> downstreams;
78 std::transform(inRecords.begin(), inRecords.end(), std::inserter(downstreams, downstreams.end()),
83 for (
const Face* exceptFace : exceptFaces) {
84 downstreams.erase(exceptFace);
88 for (
const Face* downstream : downstreams) {
89 this->
sendNack(pitEntry, *downstream, header);
std::list< InRecord > InRecordCollection
represents an unordered collection of InRecords
#define NFD_LOG_DEBUG(expression)
shared_ptr< Face > getFace() const
const Name & getName() const
Get name of the Data packet.
contains information about an Interest from an incoming face
virtual void beforeSatisfyInterest(shared_ptr< pit::Entry > pitEntry, const Face &inFace, const Data &data)
trigger before PIT entry is satisfied
represents a Network Nack
void sendNacks(shared_ptr< pit::Entry > pitEntry, const lp::NackHeader &header, std::initializer_list< const Face *> exceptFaces=std::initializer_list< const Face *>())
send Nack to every face that has an in-record, except those in exceptFaces
virtual void beforeExpirePendingInterest(shared_ptr< pit::Entry > pitEntry)
trigger before PIT entry expires
Copyright (c) 2011-2015 Regents of the University of California.
Strategy(Forwarder &forwarder, const Name &name)
construct a strategy instance
Name abstraction to represent an absolute name.
#define NFD_LOG_INIT(name)
void sendNack(shared_ptr< pit::Entry > pitEntry, const Face &outFace, const lp::NackHeader &header)
send Nack to outFace
virtual void afterReceiveNack(const Face &inFace, const lp::Nack &nack, shared_ptr< fib::Entry > fibEntry, shared_ptr< pit::Entry > pitEntry)
trigger after Nack is received