void MediaWidget::Pauser::modifyPaused(unsigned const newPaused, MediaWidget &mw) { if (paused_) { if (!newPaused) mw.callWhenPaused(DoUnpause(mw)); } else { if (newPaused) mw.callWhenPaused(DoPause(mw)); } paused_ = newPaused; }
EnIocpAction CTcpServer::CheckIocpCommand(OVERLAPPED* pOverlapped, DWORD dwBytes, ULONG_PTR ulCompKey) { ASSERT(pOverlapped == nullptr); EnIocpAction action = IOCP_ACT_CONTINUE; CONNID dwConnID = (CONNID)ulCompKey; switch(dwBytes) { case IOCP_CMD_SEND : DoSend(dwConnID) ; break; case IOCP_CMD_UNPAUSE : DoUnpause(dwConnID) ; break; case IOCP_CMD_ACCEPT : DoAccept() ; break; case IOCP_CMD_DISCONNECT: ForceDisconnect(dwConnID) ; break; case IOCP_CMD_EXIT : action = IOCP_ACT_BREAK ; break; default : CheckError(FindSocketObj(dwConnID), SO_CLOSE, (int)dwBytes); } return action; }