Be more careful during final cleanup process (all ccnx objects are now properly destroyed)
diff --git a/model/ccnx-fib.cc b/model/ccnx-fib.cc
index f8c5956..d473197 100644
--- a/model/ccnx-fib.cc
+++ b/model/ccnx-fib.cc
@@ -199,6 +199,7 @@
CcnxFib::DoDispose (void)
{
m_node = 0;
+ clear ();
Object::DoDispose ();
}
diff --git a/model/ccnx-l3-protocol.cc b/model/ccnx-l3-protocol.cc
index 823ddbe..63c9049 100644
--- a/model/ccnx-l3-protocol.cc
+++ b/model/ccnx-l3-protocol.cc
@@ -133,10 +133,12 @@
m_node = 0;
// Force delete on objects
+ m_forwardingStrategy = 0; // there is a reference to PIT stored in here
m_rit = 0;
m_pit = 0;
m_contentStore = 0;
-
+ m_fib = 0;
+
// m_forwardingStrategy = 0;
Object::DoDispose ();
}
diff --git a/model/ccnx-pit.cc b/model/ccnx-pit.cc
index 86484ef..f51aa33 100644
--- a/model/ccnx-pit.cc
+++ b/model/ccnx-pit.cc
@@ -61,6 +61,20 @@
clear ();
}
+void
+CcnxPit::NotifyNewAggregate ()
+{
+}
+
+void
+CcnxPit::DoDispose ()
+{
+ if (m_cleanupEvent.IsRunning ())
+ m_cleanupEvent.Cancel (); // cancel any scheduled cleanup events
+
+ clear ();
+}
+
void
CcnxPit::SetCleanupTimeout (const Time &timeout)
{
diff --git a/model/ccnx-pit.h b/model/ccnx-pit.h
index fb437a9..16a3283 100644
--- a/model/ccnx-pit.h
+++ b/model/ccnx-pit.h
@@ -180,6 +180,11 @@
*/
void SetFib (Ptr<CcnxFib> fib);
+protected:
+ // inherited from Object class
+ virtual void NotifyNewAggregate ();
+ virtual void DoDispose ();
+
public:
PitBucket maxBucketsPerFace; // maximum number of buckets. Automatically computed based on link capacity
// // averaging over 1 second (bandwidth * 1second)
diff --git a/model/ccnx-rit.cc b/model/ccnx-rit.cc
index 3536ab5..32c9ddb 100644
--- a/model/ccnx-rit.cc
+++ b/model/ccnx-rit.cc
@@ -86,6 +86,20 @@
}
void
+CcnxRit::NotifyNewAggregate ()
+{
+}
+
+void
+CcnxRit::DoDispose ()
+{
+ if (m_cleanupEvent.IsRunning ())
+ m_cleanupEvent.Cancel (); // cancel any scheduled cleanup events
+
+ clear ();
+}
+
+void
CcnxRit::SetRitTimeout (const Time &timeout)
{
m_ritTimeout = timeout;
diff --git a/model/ccnx-rit.h b/model/ccnx-rit.h
index ba5a133..501f409 100644
--- a/model/ccnx-rit.h
+++ b/model/ccnx-rit.h
@@ -188,6 +188,11 @@
*/
Time GetCleanupTimeout () const;
+protected:
+ // inherited from Object class
+ virtual void NotifyNewAggregate ();
+ virtual void DoDispose ();
+
private:
/**
* \brief Periodic even to clean up stalled entries