main.cpp 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include <log.h>
  2. #include <net-service.h>
  3. #include "IniFile.h"
  4. #include "db_api/CDBConnPool.h"
  5. #include "websocket/wsClientMgr.h"
  6. #include "websocket/wsTimerThread.h"
  7. #include "card.h"
  8. #include "ant.h"
  9. #include "card_path.h"
  10. struct Init_Setting
  11. {
  12. void init()
  13. {
  14. YADB::_DB_POOL_SETTING_ DBSetting;
  15. log_init("../dist/etc/log.ini");
  16. IniFile ini;
  17. ini.open("./config.ini");
  18. std::string url=ini.readString("SERVER_SETTING","websocket_url","");
  19. int32_t send_interval = ini.readInt("SERVER_SETTING","interval_send_json_postion",1);
  20. //std::string url_bak=ini.readString("SERVER_SETTING","websocket_url_bak","");
  21. DBSetting.Host = ini.readString("DB","host","");
  22. DBSetting.User = ini.readString("DB","user","");
  23. DBSetting.PWD = ini.readString("DB","password","");
  24. DBSetting.DBName = ini.readString("DB","dbname","");
  25. DBSetting.CharSet = ini.readString("DB","utf8","");
  26. DBSetting.TimeOut = 5;
  27. DBSetting.PoolSize = 10;
  28. std::vector<std::string> url_list;
  29. url_list.push_back(url);
  30. //init websocket
  31. wsClientMgr_init(std::move(url_list),send_interval);
  32. #define sDBConnPool singleton_CDBConnPool::get_mutable_instance()
  33. _mysql_init(DBSetting);
  34. }
  35. void _mysql_init(YADB::_DB_POOL_SETTING_ &dps)
  36. {
  37. std::string Error;
  38. //创建连接池
  39. if ( !sDBConnPool.Create( dps, Error ) )
  40. {
  41. printf("线程池创建失败,Err=%s\n", Error.c_str());
  42. return;
  43. }
  44. }
  45. void wsClientMgr_init(std::vector<std::string>&&uri_list,int32_t st)
  46. {
  47. std::map<std::string, YA::MSG_HANDLE_FUNC_TYPE> MsgFuncList;
  48. //MsgFuncList.insert( std::make_pair( "req_all_data", On_req_all_data ) );
  49. //MsgFuncList.insert( std::make_pair( "req_all_person_on_car", On_req_all_person_on_car ) );
  50. swsClientMgr.Build( uri_list, MsgFuncList );
  51. //连接服务器
  52. if ( swsClientMgr.connect() != 0 )
  53. {
  54. std_error("web socket init failed.");
  55. return;
  56. }
  57. //登录
  58. swsClientMgr.login();
  59. //init thread...
  60. YA::_THREAD_CONFIG_ Config;
  61. Config.SendInterval = st;
  62. swsTimerThrd.Init( Config );
  63. swsTimerThrd.Start();
  64. }
  65. };
  66. int main()
  67. {
  68. Init_Setting is;
  69. log_init("../dist/etc/log.ini");
  70. //init log sql websockt.
  71. // is.init();
  72. log_info("herer..init from db...");
  73. sit_list::instance()->load_from_db();
  74. card_list::instance()->init_card_from_db();
  75. card_path cp;
  76. cp.init(*sit_list::instance());
  77. net_service mh;
  78. service_handle::instance(&mh)->run(4000);
  79. return 0;
  80. }