[ndnSIM] fw: Add afterReceiveLoopedInterest strategy trigger
diff --git a/daemon/fw/forwarder.cpp b/daemon/fw/forwarder.cpp
index c9f2d1d..007914c 100644
--- a/daemon/fw/forwarder.cpp
+++ b/daemon/fw/forwarder.cpp
@@ -131,6 +131,8 @@
if (hasDuplicateNonceInPit) {
// goto Interest loop pipeline
this->onInterestLoop(ingress, interest);
+ this->dispatchToStrategy(*pitEntry,
+ [&] (fw::Strategy& strategy) { strategy.afterReceiveLoopedInterest(ingress, interest, *pitEntry); });
return;
}
diff --git a/daemon/fw/strategy.cpp b/daemon/fw/strategy.cpp
index 151dac8..a5519fa 100644
--- a/daemon/fw/strategy.cpp
+++ b/daemon/fw/strategy.cpp
@@ -148,6 +148,15 @@
Strategy::~Strategy() = default;
+
+void
+Strategy::afterReceiveLoopedInterest(const FaceEndpoint& ingress, const Interest& interest,
+ pit::Entry& pitEntry)
+{
+ NFD_LOG_DEBUG("afterReceiveLoopedInterest pitEntry=" << pitEntry.getName()
+ << " in=" << ingress);
+}
+
void
Strategy::beforeSatisfyInterest(const shared_ptr<pit::Entry>& pitEntry,
const FaceEndpoint& ingress, const Data& data)
diff --git a/daemon/fw/strategy.hpp b/daemon/fw/strategy.hpp
index cc1b2b8..4b472b1 100644
--- a/daemon/fw/strategy.hpp
+++ b/daemon/fw/strategy.hpp
@@ -143,6 +143,19 @@
afterReceiveInterest(const FaceEndpoint& ingress, const Interest& interest,
const shared_ptr<pit::Entry>& pitEntry) = 0;
+
+ /** \brief trigger after a looped Interest is received
+ *
+ * The Interest:
+ * - does not violate Scope
+ * - IS looped
+ * - cannot be satisfied by ContentStore
+ * - is under a namespace managed by this strategy
+ */
+ virtual void
+ afterReceiveLoopedInterest(const FaceEndpoint& ingress, const Interest& interest,
+ pit::Entry& pitEntry);
+
/** \brief trigger before PIT entry is satisfied
*
* This trigger is invoked when an incoming Data satisfies more than one PIT entry.