void __TimeEventCallBack(int/* fd*/, short events, void *arg) { if ( ! (events & EV_TIMEOUT) ) { return; } void ** argv = static_cast<void **>(arg); EventHandler* handler = static_cast<EventHandler*>(argv[0]); TimerData* pTimerData = static_cast<TimerData*>(argv[1]); handler->HandleTimeout(pTimerData); handler->GetEventManager()->RemoveTimeHandler(handler, pTimerData); }
void __EventCallBack(int/* fd*/, short events, void *arg) { EventHandler* handler = static_cast<EventHandler*>(arg); assert(handler); if (events & EV_TIMEOUT) { handler->HandleTimeout(NULL); } else if (events & EV_READ) { handler->HandleInput(); } else if (events & EV_WRITE) { handler->HandleOutput(); } }