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