static CImConn* FindImConn(ConnMap_t* imconn_map, net_handle_t handle) { CImConn* pConn = NULL; ConnMap_t::iterator iter = imconn_map->find(handle); if (iter != imconn_map->end()) { pConn = iter->second; pConn->AddRef(); } return pConn; }
void imconn_callback(void* callback_data, uint8_t msg, uint32_t handle, void* pParam) { NOTUSED_ARG(handle); NOTUSED_ARG(pParam); CImConn* pConn = TcpSocketsManager::getInstance()->get_client_conn(handle); if (!pConn) { //LOG__(NET, _T("connection is invalied:%d"), handle); return; } pConn->AddRef(); // LOG__(NET, "msg=%d, handle=%d\n", msg, handle); switch (msg) { case NETLIB_MSG_CONFIRM: pConn->onConnect(); break; case NETLIB_MSG_READ: pConn->OnRead(); break; case NETLIB_MSG_WRITE: pConn->OnWrite(); break; case NETLIB_MSG_CLOSE: pConn->OnClose(); break; default: LOG__(NET, _T("!!!imconn_callback error msg: %d"), msg); break; } pConn->ReleaseRef(); }