//------------------------------------------------------------------------------------------------- void TimerActor::delete_event(const acto::actor_ref& actor) { for (Events::iterator i = m_events.begin(); i != m_events.end(); i++) { if ((*i)->actor == actor) { // 1. Удалить системный таймер // // NOTE: Так как последний параметр INVALID_HANDLE_VALUE, то // функция возвратит управление только тогда, когда завершится // выполнение соответствующей TimerProc. ::DeleteTimerQueueTimer( m_timers, (*i)->timer, INVALID_HANDLE_VALUE ); // 2. Удалить экземпляр события delete (*i); // 3. Удалить элемент из списка m_events.erase( i ); // - break; } } }
void remove (iterator ie) { m_events.erase(ie); }
bool replace (iterator ie, const editable_event & e) { m_events.erase(ie); return add(e); }