SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Settings.h
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 #ifndef swcdb_app_fsbroker_Settings_h
7 #define swcdb_app_fsbroker_Settings_h
8 
9 #include "swcdb/core/Encoder.h"
12 #include "swcdb/fs/Settings.h"
14 
15 namespace SWC { namespace Config {
16 
17 
18 
19 void init_app_options(Settings* settings) {
20  init_comm_options(settings);
21  init_fs_options(settings);
22  init_client_options(settings);
23 
24  settings->file_desc.add_options()
25  ("swc.fs.broker.host", str(),
26  "FsBroker host (default resolve by hostname)")
27  ("swc.fs.broker.port", i16(14000),
28  "FsBroker port")
29 
30  ("swc.FsBroker.cfg", str(),
31  "Specific cfg-file for FsBroker")
32  ("swc.FsBroker.cfg.dyn", strs(),
33  "Specific dyn. cfg-file for FsBroker")
34  ("swc.cfg.dyn.period", g_i32(60000),
35  "Dynamic cfg-file check interval in ms, zero without")
36 
37  ("swc.FsBroker.concurrency.relative", boo(true),
38  "Determined ratio by HW-Concurrency")
39  ("swc.FsBroker.reactors", i32(4),
40  "Number of Communication Reactors or HW-Concurrency a Reactor")
41  ("swc.FsBroker.workers", i32(16),
42  "Number of Workers a Reactor")
43  ("swc.FsBroker.handlers", i32(64),
44  "Number or HW-Concurrency base of App Handlers")
45 
46  ("swc.FsBroker.metrics.enabled", boo(true),
47  "Enable or Disable Metrics Monitoring")
48  ("swc.FsBroker.metrics.report.broker", boo(true),
49  "Report Metrics via Broker Client")
50  ("swc.FsBroker.metrics.report.interval", g_i32(300),
51  "Metrics Reporting Interval in Seconds")
52 
53  ("swc.FsBroker.comm.encoder",
54  g_enum(
56  nullptr,
59  "The encoding to use in communication, options PLAIN/ZSTD/SNAPPY/ZLIB")
60  ;
61  settings->alias("host", "swc.fs.broker.host");
62 }
63 
64 void init_post_cmd_args(Settings* settings) {
65  settings->parse_file(
66  settings->get_str("swc.fs.broker.cfg", ""), nullptr
67  );
68  settings->parse_file(
69  settings->get_str("swc.FsBroker.cfg", ""), "swc.FsBroker.cfg.dyn"
70  );
71 }
72 
73 
74 }}
75 
76 #endif // swcdb_app_fsbroker_Settings_h
SWC::Config::i32
Property::Value_int32::Ptr i32(const int32_t &v)
Definition: PropertiesParser.cc:33
SWC::Config::g_i32
Property::Value_int32_g::Ptr g_i32(const int32_t &v)
Definition: PropertiesParser.cc:77
SWC::Config::g_enum
Property::Value_enum_g::Ptr g_enum(const int32_t &v, Property::Value_enum_g::OnChg_t &&cb, Property::Value_enum_g::FromString_t &&from_string, Property::Value_enum_g::Repr_t &&repr)
Definition: PropertiesParser.cc:89
Settings.h
SWC::Config::init_app_options
void init_app_options(Settings *settings)
Definition: load_generator.cc:166
Settings.h
SWC::Core::Encoder::from_string_encoding
SWC_CAN_INLINE int from_string_encoding(const std::string &typ) noexcept
Definition: Encoder.h:47
SWC::Config::boo
Property::Value_bool::Ptr boo(const bool &v)
Definition: PropertiesParser.cc:21
SWC::Config::init_fs_options
void init_fs_options(Settings *settings)
Definition: Settings.cc:13
SWC::Config::init_client_options
void init_client_options(Settings *settings)
Definition: Settings.cc:13
SWC::Config::Settings::parse_file
void parse_file(const std::string &fname, const char *onchg)
Definition: Settings.cc:177
SWC_DEFAULT_COMM_ENCODER
#define SWC_DEFAULT_COMM_ENCODER
Definition: Encoder.h:23
SWC::Config::i16
Property::Value_uint16::Ptr i16(const uint16_t &v)
Definition: PropertiesParser.cc:29
SWC::Config::init_comm_options
void init_comm_options(Settings *settings)
Definition: Settings.cc:13
Settings.h
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
SWC::Config::strs
Property::Value_strings::Ptr strs(Strings &&v)
Definition: PropertiesParser.cc:49
SWC::Config::str
Property::Value_string::Ptr str(std::string &&v)
Definition: PropertiesParser.cc:45
SWC::Config::Settings
Definition: Settings.h:25
Settings.h
SWC::Config::Properties::get_str
std::string get_str(const char *name) const
Definition: Properties.h:77
SWC::Config::init_post_cmd_args
void init_post_cmd_args(Settings *settings)
Definition: Settings.h:64
SWC::Core::Encoder::repr_encoding
SWC_CAN_INLINE std::string repr_encoding(int typ)
Definition: Encoder.h:42
Encoder.h