fw: Slightly modifying events for Interest forwarding.

Now we have explicit method to check whether Interest can be forwarded
or not.  Unlike it was before, now this method allows clear chaining.
diff --git a/model/fw/simple-limits.h b/model/fw/simple-limits.h
index dd597c0..ce639e3 100644
--- a/model/fw/simple-limits.h
+++ b/model/fw/simple-limits.h
@@ -23,6 +23,7 @@
 #define NDNSIM_SIMPLE_LIMITS_H
 
 #include "ns3/event-id.h"
+#include "ns3/log.h"
 #include "ns3/ndn-pit.h"
 #include "ns3/ndn-pit-entry.h"
 #include "ns3/simulator.h"
@@ -72,7 +73,7 @@
   
 protected:
   virtual bool
-  TrySendOutInterest (Ptr<Face> inFace,
+  CanSendOutInterest (Ptr<Face> inFace,
                       Ptr<Face> outFace,
                       Ptr<const InterestHeader> header,
                       Ptr<const Packet> origPacket,
@@ -84,9 +85,14 @@
 
 private:
   std::string m_limitType;
+
+  static LogComponent g_log;
 };
 
 template<class Parent>
+LogComponent SimpleLimits<Parent>::g_log = LogComponent ("ndn.SimpleLimits");
+
+template<class Parent>
 TypeId
 SimpleLimits<Parent>::GetTypeId (void)
 {
@@ -105,50 +111,36 @@
 
 template<class Parent>
 bool
-SimpleLimits<Parent>::TrySendOutInterest (Ptr<Face> inFace,
-                                                Ptr<Face> outFace,
-                                                Ptr<const InterestHeader> header,
-                                                Ptr<const Packet> origPacket,
-                                                Ptr<pit::Entry> pitEntry)
+SimpleLimits<Parent>::CanSendOutInterest (Ptr<Face> inFace,
+                                          Ptr<Face> outFace,
+                                          Ptr<const InterestHeader> header,
+                                          Ptr<const Packet> origPacket,
+                                          Ptr<pit::Entry> pitEntry)
 {
-  // NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
-  // totally override all (if any) parent processing
-  
-  pit::Entry::out_iterator outgoing =
-    pitEntry->GetOutgoing ().find (outFace);
+  NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
 
-  if (outgoing != pitEntry->GetOutgoing ().end ())
+  if (!super::CanSendOutInterest (inFace, outFace, header, origPacket, pitEntry))
     {
-      // just suppress without any other action
       return false;
     }
-
+  
   Ptr<Limits> faceLimits = outFace->template GetObject<Limits> ();
   if (faceLimits->IsBelowLimit ())
     {
       faceLimits->BorrowLimit ();
-      pitEntry->AddOutgoing (outFace);
-
-      //transmission
-      Ptr<Packet> packetToSend = origPacket->Copy ();
-      outFace->Send (packetToSend);
-
-      this->DidSendOutInterest (outFace, header, origPacket, pitEntry);      
       return true;
     }
   else
     {
-      // NS_LOG_DEBUG ("Face limit for " << header->GetName ());
+      return false;
     }
-
-  return false;
 }
 
 template<class Parent>
 void
 SimpleLimits<Parent>::WillEraseTimedOutPendingInterest (Ptr<pit::Entry> pitEntry)
 {
-  // NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
+  NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
 
   for (pit::Entry::out_container::iterator face = pitEntry->GetOutgoing ().begin ();
        face != pitEntry->GetOutgoing ().end ();
@@ -167,7 +159,7 @@
 SimpleLimits<Parent>::WillSatisfyPendingInterest (Ptr<Face> inFace,
                                                         Ptr<pit::Entry> pitEntry)
 {
-  // NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
+  NS_LOG_FUNCTION (this << pitEntry->GetPrefix ());
 
   for (pit::Entry::out_container::iterator face = pitEntry->GetOutgoing ().begin ();
        face != pitEntry->GetOutgoing ().end ();