58 return i; |
58 return i; |
59 } |
59 } |
60 |
60 |
61 |
61 |
62 EventId |
62 EventId |
63 SchedulerList::insert (EventImpl *event, Scheduler::EventKey key) |
63 SchedulerList::real_insert (EventImpl *event, Scheduler::EventKey key) |
64 { |
64 { |
65 Scheduler::EventKeyCompare compare; |
65 Scheduler::EventKeyCompare compare; |
66 for (EventsI i = m_events.begin (); i != m_events.end (); i++) { |
66 for (EventsI i = m_events.begin (); i != m_events.end (); i++) { |
67 if (compare (key, i->second)) { |
67 if (compare (key, i->second)) { |
68 m_events.insert (i, std::make_pair (event, key)); |
68 m_events.insert (i, std::make_pair (event, key)); |
71 } |
71 } |
72 m_events.push_back (std::make_pair (event, key)); |
72 m_events.push_back (std::make_pair (event, key)); |
73 return get_event_id (key, --(m_events.end ())); |
73 return get_event_id (key, --(m_events.end ())); |
74 } |
74 } |
75 bool |
75 bool |
76 SchedulerList::is_empty (void) const |
76 SchedulerList::real_is_empty (void) const |
77 { |
77 { |
78 return m_events.empty (); |
78 return m_events.empty (); |
79 } |
79 } |
80 EventImpl * |
80 EventImpl * |
81 SchedulerList::peek_next (void) const |
81 SchedulerList::real_peek_next (void) const |
82 { |
82 { |
83 assert (!is_empty ()); |
|
84 return m_events.front ().first; |
83 return m_events.front ().first; |
85 } |
84 } |
86 Scheduler::EventKey |
85 Scheduler::EventKey |
87 SchedulerList::peek_next_key (void) const |
86 SchedulerList::real_peek_next_key (void) const |
88 { |
87 { |
89 assert (!is_empty ()); |
|
90 return m_events.front ().second; |
88 return m_events.front ().second; |
91 } |
89 } |
92 |
90 |
93 void |
91 void |
94 SchedulerList::remove_next (void) |
92 SchedulerList::real_remove_next (void) |
95 { |
93 { |
96 m_events.pop_front (); |
94 m_events.pop_front (); |
97 } |
95 } |
98 |
96 |
99 EventImpl * |
97 EventImpl * |
100 SchedulerList::remove (EventId id, Scheduler::EventKey *key) |
98 SchedulerList::real_remove (EventId id, Scheduler::EventKey *key) |
101 { |
99 { |
102 EventsI i = get_iterator (id); |
100 EventsI i = get_iterator (id); |
103 *key = i->second; |
101 *key = i->second; |
104 assert (key->m_ns == id.get_ns () && |
102 assert (key->m_ns == id.get_ns () && |
105 key->m_uid == id.get_uid ()); |
103 key->m_uid == id.get_uid ()); |
107 m_events.erase (i); |
105 m_events.erase (i); |
108 return ev; |
106 return ev; |
109 } |
107 } |
110 |
108 |
111 bool |
109 bool |
112 SchedulerList::is_valid (EventId id) |
110 SchedulerList::real_is_valid (EventId id) |
113 { |
111 { |
114 EventsI i = get_iterator (id); |
112 EventsI i = get_iterator (id); |
115 Scheduler::EventKey key = i->second; |
113 Scheduler::EventKey key = i->second; |
116 return (key.m_ns == id.get_ns () && |
114 return (key.m_ns == id.get_ns () && |
117 key.m_uid == id.get_uid ()); |
115 key.m_uid == id.get_uid ()); |