26 #ifndef NFD_DAEMON_FW_STRATEGY_HPP
27 #define NFD_DAEMON_FW_STRATEGY_HPP
37 class Strategy :
public enable_shared_from_this<Strategy>, noncopyable
79 const Interest& interest,
80 shared_ptr<fib::Entry> fibEntry,
81 shared_ptr<pit::Entry> pitEntry) = 0;
95 const Face& inFace,
const Data& data);
116 shared_ptr<Face> outFace,
117 bool wantNewNonce =
false);
161 shared_ptr<Face> outFace,
164 m_forwarder.onOutgoingInterest(pitEntry, *outFace, wantNewNonce);
170 m_forwarder.onInterestReject(pitEntry);
176 return m_measurements;
179 inline shared_ptr<Face>
182 return m_forwarder.
getFace(
id);
194 #endif // NFD_DAEMON_FW_STRATEGY_HPP
FaceTable & getFaceTable()
const Name & getName() const
a Name that represent the Strategy program
signal::Signal< FaceTable, shared_ptr< Face > > & afterAddFace
virtual void beforeSatisfyInterest(shared_ptr< pit::Entry > pitEntry, const Face &inFace, const Data &data)
trigger before PIT entry is satisfied
shared_ptr< Face > getFace(FaceId id)
virtual void beforeExpirePendingInterest(shared_ptr< pit::Entry > pitEntry)
trigger before PIT entry expires
MeasurementsAccessor & getMeasurements()
allows Strategy to access portion of Measurements table under its namespace
const FaceTable & getFaceTable()
Strategy(Forwarder &forwarder, const Name &name)
construct a strategy instance
shared_ptr< Face > getFace(FaceId id) const
get existing Face
void rejectPendingInterest(shared_ptr< pit::Entry > pitEntry)
decide that a pending Interest cannot be forwarded
represents a forwarding strategy
signal::Signal< FaceTable, shared_ptr< Face > > & beforeRemoveFace
#define VIRTUAL_WITH_TESTS
Copyright (c) 2014, Regents of the University of California, Arizona Board of Regents, Colorado State University, University Pierre & Marie Curie, Sorbonne University, Washington University in St.
void sendInterest(shared_ptr< pit::Entry > pitEntry, shared_ptr< Face > outFace, bool wantNewNonce=false)
send Interest to outFace
virtual void afterReceiveInterest(const Face &inFace, const Interest &interest, shared_ptr< fib::Entry > fibEntry, shared_ptr< pit::Entry > pitEntry)=0
trigger after Interest is received