virtual void HandleEvent(EventType et, int errornum) { switch (et) { case EVENT_READ: OnDataReady(); break; case EVENT_WRITE: OnWriteReady(); break; case EVENT_ERROR: DelayReconnect(); break; default: break; } }
void CSocket::OnAsyncSelect(int nEvent, int nError) { // Error occurred BUT not due to socket closure? if ( (nError != 0) && ((nEvent & FD_CLOSE) == 0) ) { OnError(nEvent, nError); return; } // Socket closed? if (nEvent & FD_CLOSE) { OnClosed(nError); return; } // Read/Write now available? if (nEvent & FD_READ) OnReadReady(); if (nEvent & FD_WRITE) OnWriteReady(); }