| | |
| | | void Help() |
| | | { |
| | | PrintLn("%s : bhome shared memory message queue box application.", kOrigName.c_str()); |
| | | PrintLn("usage:"); |
| | | PrintLn("%s", "usage:"); |
| | | PrintLn("\t1) %s [function [options]...]", kOrigName.c_str()); |
| | | PrintLn("\t2) rename or link %s to a function name then run it directly.", kOrigName.c_str()); |
| | | PrintLn(); |
| | | PrintLn("supported functions:"); |
| | | PrintLn("%s", "supported functions:"); |
| | | std::map<std::string, std::string> funcs; |
| | | auto getInfo = [&](const std::string &name, const std::string &desc) { |
| | | funcs[name] = desc; |
| | |
| | | |
| | | auto &shm = BHomeShm(); |
| | | if (!CenterInit(shm)) { |
| | | LOG_FATAL() << "init memory error."; |
| | | auto msg = "init memory error."; |
| | | LOG_FATAL() << msg; |
| | | printf("%s\n", msg); |
| | | exit(0); |
| | | } |
| | | GlobalInit(shm); |
| | | |
| | | InstanceFlag inst(shm, kCenterRunningFlag); |
| | | if (!inst.TryStartAsFirstInstance()) { |
| | | LOG_INFO() << "another instance is running, exit."; |
| | | auto msg = "another instance is running, exit."; |
| | | LOG_INFO() << msg; |
| | | printf("%s\n", msg); |
| | | return 0; |
| | | } |
| | | |
| | |
| | | BHCenter center(shm); |
| | | center.Start(); |
| | | |
| | | LOG_INFO() << "center started ..."; |
| | | auto msg = "center started ..."; |
| | | LOG_INFO() << msg; |
| | | printf("%s\n", msg); |
| | | WaitForSignals({SIGINT, SIGTERM}); |
| | | center.Stop(); |
| | | LOG_INFO() << "center stopped."; |