#include #include #include "IniFile.h" #include "db_api/CDBConnPool.h" #include "websocket/wsClientMgr.h" #include "websocket/wsTimerThread.h" #include "card.h" #include "ant.h" #include "card_path.h" struct Init_Setting { void init() { YADB::_DB_POOL_SETTING_ DBSetting; log_init("../dist/etc/log.ini"); IniFile ini; ini.open("./config.ini"); std::string url=ini.readString("SERVER_SETTING","websocket_url",""); int32_t send_interval = ini.readInt("SERVER_SETTING","interval_send_json_postion",1); //std::string url_bak=ini.readString("SERVER_SETTING","websocket_url_bak",""); DBSetting.Host = ini.readString("DB","host",""); DBSetting.User = ini.readString("DB","user",""); DBSetting.PWD = ini.readString("DB","password",""); DBSetting.DBName = ini.readString("DB","dbname",""); DBSetting.CharSet = ini.readString("DB","utf8",""); DBSetting.TimeOut = 5; DBSetting.PoolSize = 10; std::vector url_list; url_list.push_back(url); //init websocket wsClientMgr_init(std::move(url_list),send_interval); #define sDBConnPool singleton_CDBConnPool::get_mutable_instance() _mysql_init(DBSetting); } void _mysql_init(YADB::_DB_POOL_SETTING_ &dps) { std::string Error; //创建连接池 if ( !sDBConnPool.Create( dps, Error ) ) { printf("线程池创建失败,Err=%s\n", Error.c_str()); return; } } void wsClientMgr_init(std::vector&&uri_list,int32_t st) { std::map MsgFuncList; //MsgFuncList.insert( std::make_pair( "req_all_data", On_req_all_data ) ); //MsgFuncList.insert( std::make_pair( "req_all_person_on_car", On_req_all_person_on_car ) ); swsClientMgr.Build( uri_list, MsgFuncList ); //连接服务器 if ( swsClientMgr.connect() != 0 ) { std_error("web socket init failed."); return; } //登录 swsClientMgr.login(); //init thread... YA::_THREAD_CONFIG_ Config; Config.SendInterval = st; swsTimerThrd.Init( Config ); swsTimerThrd.Start(); } }; int main() { Init_Setting is; log_init("../dist/etc/log.ini"); //init log sql websockt. // is.init(); log_info("herer..init from db..."); sit_list::instance()->load_from_db(); card_list::instance()->init_card_from_db(); card_path cp; cp.init(*sit_list::instance()); net_service mh; service_handle::instance(&mh)->run(4000); return 0; }