void client_callback(void* callback_data, uint8_t msg, uint32_t handle, void* pParam) { if (msg == NETLIB_MSG_CONNECT) { CLoginConn* pConn = new CLoginConn(); pConn->OnConnect2(handle, LOGIN_CONN_TYPE_CLIENT); } else { log("!!!error msg: %d ", msg); } }
// this callback will be replaced by imconn_callback() in OnConnect() void msg_serv_callback(void* callback_data, uint8_t msg, uint32_t handle, void* pParam) { log("msg_server come in"); if (msg == NETLIB_MSG_CONNECT) { CLoginConn* pConn = new CLoginConn(); pConn->OnConnect2(handle, LOGIN_CONN_TYPE_MSG_SERV); } else { log("!!!error msg: %d ", msg); } }
void login_conn_timer_callback(void* callback_data, uint8_t msg, uint32_t handle, void* pParam) { uint64_t cur_time = get_tick_count(); for (ConnMap_t::iterator it = g_client_conn_map.begin(); it != g_client_conn_map.end(); ) { ConnMap_t::iterator it_old = it; it++; CLoginConn* pConn = (CLoginConn*)it_old->second; pConn->OnTimer(cur_time); } for (ConnMap_t::iterator it = g_msg_serv_conn_map.begin(); it != g_msg_serv_conn_map.end(); ) { ConnMap_t::iterator it_old = it; it++; CLoginConn* pConn = (CLoginConn*)it_old->second; pConn->OnTimer(cur_time); } }
//每隔一秒,这个函数就会被调用一次 void login_conn_timer_callback(void* callback_data, uint8_t msg, uint32_t handle, void* pParam) { log("enter[%s]", __FUNCTION__); //两个conn_map里所有的连接都要调用一次OnTimer() uint64_t cur_time = get_tick_count(); for (ConnMap_t::iterator it = g_client_conn_map.begin(); it != g_client_conn_map.end(); ) { ConnMap_t::iterator it_old = it; it++; CLoginConn* pConn = (CLoginConn*)it_old->second; pConn->OnTimer(cur_time); } for (ConnMap_t::iterator it = g_msg_serv_conn_map.begin(); it != g_msg_serv_conn_map.end(); ) { ConnMap_t::iterator it_old = it; it++; CLoginConn* pConn = (CLoginConn*)it_old->second; pConn->OnTimer(cur_time); } log("leave[%s]", __FUNCTION__); }