Changeset 173 for trunk/src/framework
- Timestamp:
- 11/19/08 13:43:02 (17 years ago)
- Location:
- trunk/src/framework/Utilities
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/framework/Utilities/EventProcessor.cpp
r102 r173 29 29 EventProcessor::~EventProcessor() 30 30 { 31 KillAllEvents( );31 KillAllEvents(true); 32 32 } 33 33 … … 61 61 } 62 62 63 void EventProcessor::KillAllEvents( )63 void EventProcessor::KillAllEvents(bool force) 64 64 { 65 65 // prevent event insertions … … 67 67 68 68 // first, abort all existing events 69 for (EventList::iterator i = m_events.begin(); i != m_events.end(); ++i)69 for (EventList::iterator i = m_events.begin(); i != m_events.end();) 70 70 { 71 i->second->to_Abort = true; 72 i->second->Abort(m_time); 73 delete i->second; 71 EventList::iterator i_old = i; 72 ++i; 73 74 i_old->second->to_Abort = true; 75 i_old->second->Abort(m_time); 76 if(force || i_old->second->IsDeletable()) 77 { 78 delete i_old->second; 79 80 if(!force) // need per-element cleanup 81 m_events.erase (i_old); 82 } 74 83 } 75 84 76 // clear event list 77 m_events.clear(); 85 // fast clear event list (in force case) 86 if(force) 87 m_events.clear(); 78 88 } 79 89 -
trunk/src/framework/Utilities/EventProcessor.h
r102 r173 40 40 // e_time is execution time, p_time is update interval 41 41 virtual bool Execute(uint64 /*e_time*/, uint32 /*p_time*/) { return true; } 42 43 virtual bool IsDeletable() const { return true; } // this event can be safely deleted 42 44 43 45 virtual void Abort(uint64 /*e_time*/) {} // this method executes when the event is aborted … … 60 62 61 63 void Update(uint32 p_time); 62 void KillAllEvents( );64 void KillAllEvents(bool force); 63 65 void AddEvent(BasicEvent* Event, uint64 e_time, bool set_addtime = true); 64 66 uint64 CalculateTime(uint64 t_offset);