26 #ifndef NFD_DAEMON_FW_FORWARDER_HPP 
   27 #define NFD_DAEMON_FW_FORWARDER_HPP 
   40 #include "ns3/ndnSIM/model/cs/ndn-content-store.hpp" 
  130   onIncomingInterest(
Face& inFace, 
const Interest& interest);
 
  135   onInterestLoop(
Face& inFace, 
const Interest& interest,
 
  136                  shared_ptr<pit::Entry> pitEntry);
 
  141   onOutgoingInterest(shared_ptr<pit::Entry> pitEntry, 
Face& outFace,
 
  142                      bool wantNewNonce = 
false);
 
  147   onInterestReject(shared_ptr<pit::Entry> pitEntry);
 
  152   onInterestUnsatisfied(shared_ptr<pit::Entry> pitEntry);
 
  159   onInterestFinalize(shared_ptr<pit::Entry> pitEntry, 
bool isSatisfied,
 
  160                      const time::milliseconds& dataFreshnessPeriod = time::milliseconds(-1));
 
  165   onIncomingData(
Face& inFace, 
const Data& data);
 
  170   onDataUnsolicited(
Face& inFace, 
const Data& data);
 
  175   onOutgoingData(
const Data& data, 
Face& outFace);
 
  179   setUnsatisfyTimer(shared_ptr<pit::Entry> pitEntry);
 
  182   setStragglerTimer(shared_ptr<pit::Entry> pitEntry, 
bool isSatisfied,
 
  183                     const time::milliseconds& dataFreshnessPeriod = time::milliseconds(-1));
 
  186   cancelUnsatisfyAndStragglerTimer(shared_ptr<pit::Entry> pitEntry);
 
  193   insertDeadNonceList(
pit::Entry& pitEntry, 
bool isSatisfied,
 
  194                       const time::milliseconds& dataFreshnessPeriod,
 
  200   dispatchToStrategy(shared_ptr<pit::Entry> pitEntry, 
function<
void(
fw::Strategy*)> trigger);
 
  202   template<
class Function>
 
  204   dispatchToStrategy(shared_ptr<pit::Entry> pitEntry, Function trigger);
 
  220   shared_ptr<NullFace> m_csFace;
 
  222   ns3::Ptr<ns3::ndn::ContentStore> m_csFromNdnSim;
 
  224   static const Name LOCALHOST_NAME;
 
  242 inline shared_ptr<Face>
 
  245   return m_faceTable.
get(
id);
 
  251   m_faceTable.
add(face);
 
  257   this->onIncomingInterest(face, interest);
 
  263   this->onIncomingData(face, data);
 
  293   return m_measurements;
 
  299   return m_strategyChoice;
 
  305   return m_deadNonceList;
 
  316 Forwarder::dispatchToStrategy(shared_ptr<pit::Entry> pitEntry, 
function<
void(
fw::Strategy*)> trigger)
 
  318 template<
class Function>
 
  320 Forwarder::dispatchToStrategy(shared_ptr<pit::Entry> pitEntry, Function trigger)
 
  323   fw::Strategy& strategy = m_strategyChoice.findEffectiveStrategy(*pitEntry);
 
  329 #endif // NFD_DAEMON_FW_FORWARDER_HPP 
signal::Signal< Forwarder, pit::Entry, Face, Data > beforeSatisfyInterest
trigger before PIT entry is satisfied 
 
represents the Dead Nonce list 
 
represents the Strategy Choice table 
 
contains counters on forwarder 
 
StrategyChoice & getStrategyChoice()
 
FaceTable & getFaceTable()
 
void addFace(shared_ptr< Face > face)
add new Face 
 
void add(shared_ptr< Face > face)
 
DeadNonceList & getDeadNonceList()
 
represents the Interest Table 
 
#define PROTECTED_WITH_TESTS_ELSE_PRIVATE
 
const ForwarderCounters & getCounters() const 
 
void onData(Face &face, const Data &data)
 
signal::Signal< Forwarder, pit::Entry > beforeExpirePendingInterest
trigger before PIT entry expires 
 
Measurements & getMeasurements()
 
shared_ptr< Face > getFace(FaceId id) const 
get existing Face 
 
represents a forwarding strategy 
 
void setCsFromNdnSim(ns3::Ptr< ns3::ndn::ContentStore > cs)
 
#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 onInterest(Face &face, const Interest &interest)
 
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
 
shared_ptr< Face > get(FaceId id) const