Counter Event::instanceCounter = 0;
#endif
-inline Event *
-insertBefore(Event *event, Event *curr)
+Event *
+Event::insertBefore(Event *event, Event *curr)
{
// Either way, event will be the top element in the 'in bin' list
// which is the pointer we need in order to look into the list, so
{
// Deal with the head case
if (!head || *event <= *head) {
- head = insertBefore(event, head);
+ head = Event::insertBefore(event, head);
return;
}
// Note: this operation may render all nextBin pointers on the
// prev 'in bin' list stale (except for the top one)
- prev->nextBin = insertBefore(event, curr);
+ prev->nextBin = Event::insertBefore(event, curr);
}
-inline Event *
-removeItem(Event *event, Event *top)
+Event *
+Event::removeItem(Event *event, Event *top)
{
Event *curr = top;
Event *next = top->nextInBin;
// deal with an event on the head's 'in bin' list (event has the same
// time as the head)
if (*head == *event) {
- head = removeItem(event, head);
+ head = Event::removeItem(event, head);
return;
}
// curr points to the top item of the the correct 'in bin' list, when
// we remove an item, it returns the new top item (which may be
// unchanged)
- prev->nextBin = removeItem(event, curr);
+ prev->nextBin = Event::removeItem(event, curr);
}
Event *
Event *nextBin;
Event *nextInBin;
- friend Event *insertBefore(Event *event, Event *curr);
- friend Event *removeItem(Event *event, Event *last);
+ static Event *insertBefore(Event *event, Event *curr);
+ static Event *removeItem(Event *event, Event *last);
/// queue to which this event belongs (though it may or may not be
/// scheduled on this queue yet)