You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.9 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #include "main.hpp"
  2. #include <signal.h>
  3. #include <sqlite3.h>
  4. using namespace iflytop;
  5. using namespace core;
  6. using namespace std;
  7. namespace iflytop {
  8. bool g_in_test = false;
  9. };
  10. /*******************************************************************************
  11. * MAIN => MAIN *
  12. *******************************************************************************/
  13. Main *Main::g_main;
  14. int main(int argc, char *argv[]) {
  15. Main main;
  16. Main::g_main = &main;
  17. main.run(argc, argv);
  18. }
  19. void Main::onsignal(int signo) { exit(0); }
  20. void Main::run(int argc, char *argv[]) {
  21. // ::signal(SIGINT, Main::_onsignal);
  22. thread.reset(new Thread("main", [&]() { exit(main(argc, argv)); }));
  23. while (true) sleep(1000);
  24. }
  25. int Main::main(int argc, char *argv[]) {
  26. /**
  27. * @brief
  28. */
  29. string test_mode = "false";
  30. auto cli = ((required("--test_mode") & value("test_mode", test_mode)).doc("test_mode"));
  31. if (!parse(argc, argv, cli)) {
  32. test_mode = "false";
  33. // cout << make_man_page(cli, argv[0]);
  34. // exit(-1);
  35. }
  36. if (test_mode == "false") {
  37. g_in_test = false;
  38. } else {
  39. g_in_test = true;
  40. }
  41. logger->info("test_mode:{}:{}", test_mode, g_in_test);
  42. /**
  43. * @brief
  44. */
  45. logger->info("system setup start.");
  46. spdlog::flush_on(spdlog::level::debug);
  47. logger->info("#");
  48. logger->info("# company:{}", "ifytop");
  49. logger->info("# version:{}", VERSION);
  50. logger->info("#");
  51. logger->info("build {}.....", "Config");
  52. // 构造GConfig
  53. BUILD_AND_REG_SERRVICE(GConfig);
  54. GET_SERVICE(GConfig)->initialize();
  55. /**
  56. * @brief
  57. */
  58. // if (!device_id.empty()) GET_SERVICE(GConfig)->set_deviceId(device_id);
  59. auto config = GET_SERVICE(GConfig);
  60. // 构造MainControlService
  61. BUILD_AND_REG_SERRVICE(MainControlService);
  62. GET_SERVICE(MainControlService)->initialize();
  63. logger->info("system setup end.");
  64. while (true) sleep(1000);
  65. }