Semi success with NACK enabled. Now need more NACK types and different processing
diff --git a/utils/ndn-pit-queue.cc b/utils/ndn-pit-queue.cc
index d8e810d..34410ba 100644
--- a/utils/ndn-pit-queue.cc
+++ b/utils/ndn-pit-queue.cc
@@ -146,7 +146,7 @@
shared_ptr<fw::PitQueueTag> tag = (*pitEntry)->GetFwTag<fw::PitQueueTag> ();
NS_ASSERT (tag != shared_ptr<fw::PitQueueTag> ());
- tag->RemoveFromQueue (queue->second);
+ tag->RemoveFromQueuesExcept (queue->second);
}
NS_ASSERT_MSG (queue->second->size () == 0, "Queue size should be 0 by now");
@@ -208,5 +208,26 @@
m_items.erase (item);
}
+void
+fw::PitQueueTag::RemoveFromQueuesExcept (boost::shared_ptr<PitQueue::Queue> queue)
+{
+ for (MapOfItems::iterator item = m_items.begin ();
+ item != m_items.end (); )
+ {
+ if (item->first == queue)
+ {
+ item ++;
+ continue;
+ }
+
+ item->first->erase (item->second);
+
+ MapOfItems::iterator itemToDelete = item;
+ item ++;
+ m_items.erase (itemToDelete);
+ }
+}
+
+
} // namespace ndn
} // namespace ns3