void CGateServer::ConnectRouteServer() { CRouteConn *routeConn = new CRouteConn; ServerAddr routeAddr = CGateConfig::Instance()->GetRouteAddr(); log("ip = %s\tport = %d\n", routeAddr.ip.c_str(), routeAddr.port); routeConn->Connect(routeAddr.ip.c_str(), routeAddr.port); netlib_register_timer(route_server_timer_callback, NULL, 1000); }
CHttpQuery* CHttpQuery::GetInstance() { if (!m_query_instance) { m_query_instance = new CHttpQuery(); netlib_register_timer(http_query_timer_callback, NULL, 1000); } return m_query_instance; }
void CClient::connect() { CHttpClient httpClient; string strUrl = m_strLoginDomain + "/msg_server"; string strResp; CURLcode nRet = httpClient.Get(strUrl, strResp); if(nRet != CURLE_OK) { printf("login falied. access url:%s error\n", strUrl.c_str()); g_configReturn = false; PROMPTION; return; } Json::Reader reader(Json::Features::strictMode()); Json::Value value; if(!reader.parse(strResp, value)) { printf("login falied. parse response error:%s\n", strResp.c_str()); g_configReturn = false; PROMPTION; return; } string strPriorIp, strBackupIp; uint16_t nPort; try { uint32_t nRet = value["code"].asUInt(); if(nRet != 0) { string strMsg = value["msg"].asString(); printf("login falied. errorMsg:%s\n", strMsg.c_str()); g_configReturn = false; PROMPTION; return; } strPriorIp = value["priorIP"].asString(); strBackupIp = value["backupIP"].asString(); nPort = string2int(value["port"].asString()); } catch (std::runtime_error msg) { printf("login falied. get json error:%s\n", strResp.c_str()); g_configReturn = false; PROMPTION; return; } g_pConn = new ClientConn(this); m_nHandle = g_pConn->connect(strBackupIp.c_str(), nPort, m_strName, m_strPass); if(m_nHandle != INVALID_SOCKET) { netlib_register_timer(CClient::TimerCallback, (void*)this, 1000); g_configReturn = true; } else { printf("invalid socket handle\n"); } }
static void SigHandler(int sig_no) { if (sig_no == SIGTERM) { Logger.Log(ERROR, "receive SIGTERM, prepare for exit"); // callback after 4 second to exit process; netlib_register_timer(ExitCallback, NULL, 4000); } }
void init_route_serv_conn(serv_info_t* server_list, uint32_t server_count) { g_route_server_list = server_list; g_route_server_count = server_count; serv_init<CRouteServConn>(g_route_server_list, g_route_server_count); netlib_register_timer(route_server_conn_timer_callback, NULL, 1000); s_file_handler = CFileHandler::getInstance(); s_group_chat = CGroupChat::GetInstance(); }
/** * 初始化线程池及命令字与处理方法的映射关系 */ int InitHttpConn(uint32_t thread_num) { g_routeConfig = CRouteConfig::getInstance(); g_threadPool.Init(thread_num); netlib_add_loop(HttpLoopCallback, NULL); signal(SIGTERM, SigHandler); return netlib_register_timer(HttpConnTimerCallback, NULL, 1000); }
void init_db_serv_conn(serv_info_t* server_list, uint32_t server_count, uint32_t concur_conn_cnt) { g_db_server_list = server_list; g_db_server_count = server_count; uint32_t total_db_instance = server_count / concur_conn_cnt; g_db_server_login_count = (total_db_instance / 2) * concur_conn_cnt; log("DB server connection index for login business: [0, %u), for other business: [%u, %u)\n", g_db_server_login_count, g_db_server_login_count, g_db_server_count); serv_init<CDBServConn>(g_db_server_list, g_db_server_count); netlib_register_timer(db_server_conn_timer_callback, NULL, 1000); s_group_chat = CGroupChat::GetInstance(); s_file_handler = CFileHandler::getInstance(); }
void init_http_conn() { netlib_register_timer(http_conn_timer_callback, NULL, 1000); }
void init_routeconn_timer_callback() { //s_route_file_handler = CRouteFileHandler::getInstance(); netlib_register_timer(route_serv_timer_callback, NULL, 1000); }