src/simulator/scheduler-heap.cc
changeset 963 3a7a66d1942c
parent 675 a5878de7d71c
child 1005 43b0d2c88ab9
--- a/src/simulator/scheduler-heap.cc	Mon Jul 23 14:51:57 2007 +0200
+++ b/src/simulator/scheduler-heap.cc	Mon Jul 23 14:52:51 2007 +0200
@@ -222,23 +222,22 @@
 }
 
 
-EventId
-SchedulerHeap::RealInsert (EventImpl *event, Scheduler::EventKey key)
+void
+SchedulerHeap::RealInsert (EventId id)
 {
+  EventImpl *event = id.GetEventImpl ();
+  Scheduler::EventKey key;
+  key.m_ts = id.GetTs ();
+  key.m_uid = id.GetUid ();
   m_heap.push_back (std::make_pair (event, key));
   BottomUp ();
-  return EventId (event, key.m_ts, key.m_uid);
 }
 
-EventImpl *
+EventId
 SchedulerHeap::RealPeekNext (void) const
 {
-  return m_heap[Root ()].first;
-}
-Scheduler::EventKey
-SchedulerHeap::RealPeekNextKey (void) const
-{
-  return m_heap[Root ()].second;
+  std::pair<EventImpl *,Scheduler::EventKey> next = m_heap[Root ()];
+  return EventId (next.first, next.second.m_ts, next.second.m_uid);
 }
 void     
 SchedulerHeap::RealRemoveNext (void)
@@ -249,31 +248,25 @@
 }
 
 
-EventImpl *
-SchedulerHeap::RealRemove (EventId id, Scheduler::EventKey *key)
+bool
+SchedulerHeap::RealRemove (EventId id)
 {
-  key->m_ts = id.GetTs ();
-  key->m_uid = id.GetUid ();
+  uint32_t uid = id.GetUid ();
   for (uint32_t i = 1; i < m_heap.size (); i++)
     {
-      if (key->m_uid == m_heap[i].second.m_uid)
+      if (uid == m_heap[i].second.m_uid)
         {
-          EventImpl *retval = m_heap[i].first;
+          NS_ASSERT (m_heap[i].first == id.GetEventImpl ());
           Exch (i, Last ());
           m_heap.pop_back ();
           TopDown (i);
-          return retval;
+          return true;
         }
     }
   NS_ASSERT (false);
   // quiet compiler
-  return 0;
+  return false;
 }
 
-bool 
-SchedulerHeap::RealIsValid (EventId id)
-{
-  return true;
-}
 }; // namespace ns3