SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
main.cc
Go to the documentation of this file.
1 /*
2  * SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3  * License details at <https://github.com/kashirin-alex/swc-db/#license>
4  */
5 
6 
10 
11 
12 namespace SWC {
13 
14 
20 namespace Manager {
21 
22 
23 
24 SWC_SHOULD_NOT_INLINE
26  AppContext::Ptr app_ctx(new AppContext());
30  "MANAGER",
31  Env::Config::settings()->get_bool("swc.mngr.concurrency.relative"),
32  Env::Config::settings()->get_i32("swc.mngr.reactors"),
33  Env::Config::settings()->get_i32("swc.mngr.workers"),
34  Env::Config::settings()->get_i16("swc.mngr.port"),
35  app_ctx
36  )
37  );
38  app_ctx->set_srv(srv);
39  return srv;
40 }
41 
42 SWC_SHOULD_NOT_INLINE
43 int exiting() {
44  SWC_LOG(LOG_INFO, "Exit");
45  SWC_CAN_QUICK_EXIT(EXIT_SUCCESS);
46 
48 
49  std::this_thread::sleep_for(std::chrono::seconds(1));
50  return 0;
51 }
52 
53 SWC_SHOULD_NOT_INLINE
54 int run() {
55  SWC_TRY_OR_LOG("",
56  make_service()->run();
57  return exiting();
58  );
59  return 1;
60 }
61 
62 
63 
64 }} // namespace SWC::Manager
65 
66 
67 
68 int main(int argc, char** argv) {
70  SWC::Env::Config::settings()->init_process(true, "swc.mngr.port");
71  return SWC::Manager::run();
72 }
main
int main(int argc, char **argv)
Definition: main.cc:68
SWC::Env::Config::reset
static void reset() noexcept
Definition: Settings.h:133
Settings.h
SWC_TRY_OR_LOG
#define SWC_TRY_OR_LOG(_s_, _code_)
Definition: Exception.h:153
SWC::Manager::run
SWC_SHOULD_NOT_INLINE int run()
Definition: main.cc:54
SWC::Env::Config::settings
static SWC::Config::Settings::Ptr & settings()
Definition: Settings.h:128
SWC::Config::init_app_options
void init_app_options(Settings *settings)
Definition: load_generator.cc:166
SWC::LOG_INFO
@ LOG_INFO
Definition: Logger.h:35
SWC::Manager::AppContext::Ptr
std::shared_ptr< AppContext > Ptr
Definition: AppContext.h:45
SWC::Env::Config::init
static SWC_SHOULD_NOT_INLINE void init(int argc, char **argv, SWC::Config::Settings::init_option_t init_app_options, SWC::Config::Settings::init_option_t init_post_cmd_args)
Definition: Settings.h:110
SWC::Manager::exiting
SWC_SHOULD_NOT_INLINE int exiting()
Definition: main.cc:43
SWC_LOG
#define SWC_LOG(priority, message)
Definition: Logger.h:191
SWC::Manager::AppContext
Definition: AppContext.h:42
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Comm::server::SerializedServer
Definition: SerializedServer.h:59
SWC_CAN_QUICK_EXIT
#define SWC_CAN_QUICK_EXIT(_CODE_)
Definition: Compat.h:191
SWC::Comm::server::SerializedServer::Ptr
std::shared_ptr< SerializedServer > Ptr
Definition: SerializedServer.h:62
SerializedServer.h
AppContext.h
SWC::Manager::make_service
SWC_SHOULD_NOT_INLINE Comm::server::SerializedServer::Ptr make_service()
Definition: main.cc:25