First step in reimplementing CcnxPit. Everything is broken as of right now
diff --git a/model/ccnx-pit.cc b/model/ccnx-pit.cc
index 4824bb1..3733880 100644
--- a/model/ccnx-pit.cc
+++ b/model/ccnx-pit.cc
@@ -31,10 +31,6 @@
 
 NS_LOG_COMPONENT_DEFINE ("CcnxPit");
 
-using namespace boost::tuples;
-using namespace boost;
-namespace ll = boost::lambda;
-
 namespace ns3 {
 
 NS_OBJECT_ENSURE_REGISTERED (CcnxPit);
@@ -44,10 +40,9 @@
 TypeId
 CcnxPit::GetTypeId ()
 {
-  static TypeId tid = TypeId ("ns3::CcnxPit")
+  static TypeId tid = TypeId ("ns3::private::CcnxPit")
     .SetGroupName ("Ccnx")
     .SetParent<Object> ()
-    .AddConstructor<CcnxPit> ()
     .AddAttribute ("CleanupTimeout",
                    "Timeout defining how frequent RIT should be cleaned up",
                    StringValue ("1s"),
@@ -65,12 +60,6 @@
                    StringValue("4s"),
                    MakeTimeAccessor (&CcnxPit::m_PitEntryDefaultLifetime),
                    MakeTimeChecker ())
-
-    .AddAttribute ("MaxSize",
-                   "Set maximum number of entries in PIT. If 0, limit is not enforced",
-                   StringValue ("0"),
-                   MakeUintegerAccessor (&CcnxPit::m_maxSize),
-                   MakeUintegerChecker<uint32_t> ())
     ;
 
   return tid;
@@ -84,22 +73,13 @@
 {
 }
 
-void 
-CcnxPit::NotifyNewAggregate ()
+void CcnxPit::CleanExpired ()
 {
-  if (m_fib == 0)
-    {
-      m_fib = GetObject<CcnxFib> ();
-    }
-}
-
-void 
-CcnxPit::DoDispose ()
-{
-  if (m_cleanupEvent.IsRunning ())
-    m_cleanupEvent.Cancel ();
-
-  clear ();
+  DoCleanExpired ();
+  
+  // schedule next event  
+  m_cleanupEvent = Simulator::Schedule (m_cleanupTimeout,
+                                        &CcnxPit::CleanExpired, this); 
 }
 
 void
@@ -120,121 +100,5 @@
   return m_cleanupTimeout;
 }
 
-void CcnxPit::CleanExpired ()
-{
-  // NS_LOG_LOGIC ("Cleaning PIT. Total: " << size ());
-  Time now = Simulator::Now ();
-
-  // uint32_t count = 0;
-  while (!empty ())
-    {
-      CcnxPit::index<i_timestamp>::type::iterator entry = get<i_timestamp> ().begin ();
-      if (entry->GetExpireTime () <= now) // is the record stale?
-        {
-          get<i_timestamp> ().erase (entry);
-          // count ++;
-        }
-      else
-        break; // nothing else to do. All later records will not be stale
-    }
-
-  // schedule next event  
-  m_cleanupEvent = Simulator::Schedule (m_cleanupTimeout,
-                                        &CcnxPit::CleanExpired, this); 
-}
-
-CcnxPit::iterator
-CcnxPit::Lookup (const CcnxContentObjectHeader &header) const
-{
-  iterator entry = end ();
-
-  // do the longest prefix match
-  const CcnxNameComponents &name = header.GetName ();
-  for (size_t componentsCount = name.GetComponents ().size ()+1;
-       componentsCount > 0;
-       componentsCount--)
-    {
-      CcnxNameComponents subPrefix (name.GetSubComponents (componentsCount-1));
-
-      entry = get<i_prefix> ().find (subPrefix);
-      if (entry != end())
-        return entry;
-    }
-
-  return end ();
-}
-
-CcnxPit::iterator
-CcnxPit::Lookup (const CcnxInterestHeader &header)
-{
-  NS_LOG_FUNCTION (header.GetName ());
-  NS_ASSERT_MSG (m_fib != 0, "FIB should be set");
-
-  iterator entry = get<i_prefix> ().find (header.GetName ());
-  if (entry == end ())
-    return end ();
-   
-  return entry;
-}
-
-bool
-CcnxPit::CheckIfDuplicate (CcnxPit::iterator entry, const CcnxInterestHeader &header)
-{
-  if (!entry->IsNonceSeen (header.GetNonce ()))
-    {
-      modify (entry,
-              boost::bind(&CcnxPitEntry::AddSeenNonce, ll::_1, header.GetNonce ()));
-      return false;
-    }
-  else
-    return true;
-}
-
-CcnxPit::iterator
-CcnxPit::Create (const CcnxInterestHeader &header)
-{
-  NS_ASSERT_MSG (get<i_prefix> ().find (header.GetName ()) == end (),
-                 "Entry already exists, Create must not be called!!!");
-  
-  if (m_maxSize > 0 &&
-      size () >= m_maxSize)
-    {
-      // remove old record
-      get<i_timestamp> ().erase (get<i_timestamp> ().begin ());
-    }
-      
-  CcnxFib::iterator fibEntry = m_fib->LongestPrefixMatch (header);
-  // NS_ASSERT_MSG (fibEntry != m_fib->m_fib.end (),
-  //                "There should be at least default route set" << " Prefix = "<<header.GetName() << "NodeID == " << m_fib->GetObject<Node>()->GetId() << "\n" << *m_fib);
-
-  return insert (end (),
-                 CcnxPitEntry (ns3::Create<CcnxNameComponents> (header.GetName ()),
-                               header.GetInterestLifetime ().IsZero ()?m_PitEntryDefaultLifetime
-                               :                                       header.GetInterestLifetime (),
-                               fibEntry));
-}
-
-
-void
-CcnxPit::MarkErased (CcnxPit::iterator entry)
-{
-  modify (entry,
-          ll::bind (&CcnxPitEntry::SetExpireTime, ll::_1,
-                    Simulator::Now () + m_PitEntryPruningTimout));
-}
-
-
-std::ostream& operator<< (std::ostream& os, const CcnxPit &pit)
-{
-  BOOST_FOREACH (const CcnxPitEntry &entry, pit)
-    {
-      if (entry.m_incoming.size () == 0 && entry.m_outgoing.size () == 0)
-        continue; // these are stale to-be-removed records, so there is no need to print them out
-      
-      os << entry << std::endl;
-    }
-
-  return os;
-}
 
 } // namespace ns3