rad 8.2.0
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1
9#ifndef {{cookiecutter.module_name|upper}}_CONFIG_HPP_
10#define {{cookiecutter.module_name|upper}}_CONFIG_HPP_
11
12#include <yaml-cpp/yaml.h>
13
14#include <string>
15
16namespace {{cookiecutter.module_name}} {
17
21const std::string CONFIG_DEFAULT_PROCNAME = "{{cookiecutter.application_name}}";
23const std::string CONFIG_DEFAULT_FILENAME = "";
24const std::string CONFIG_DEFAULT_SCXML_FILENAME = "{{cookiecutter.module_name}}/sm.xml";
25const std::string CONFIG_DEFAULT_LOGLEVEL = "INFO";
26const std::string CONFIG_DEFAULT_LOG_PROPERTIES = "{{cookiecutter.module_name}}/log.properties";
27const std::string CONFIG_DEFAULT_DB_ENDPOINT = "127.0.0.1:6379";
29const std::string CONFIG_DEFAULT_REQ_ENDPOINT = "zpb.rr://127.0.0.1:12081/";
30
34const std::string CONFIG_ENVVAR_DBHOST = "DB_HOST";
35
40class Config {
41 public:
49 Config();
50
54 virtual ~Config();
55
64 bool ParseOptions(int argc, char* argv[]);
65
73 void LoadConfig(const std::string& filename = "");
74
80 const std::string& GetMsgReplierEndpoint() const;
81
85 const std::string& GetDbEndpoint() const;
86
90 const timeval GetDbTimeout() const;
91
95 const std::string& GetSmScxmlFilename() const;
96
100 const std::string& GetConfigFilename() const;
101
105 const std::string& GetProcName() const;
106
110 const std::string& GetLogLevel() const;
111
115 const std::string& GetLogProperties() const;
116
117 Config(const Config&) = delete;
118 Config& operator=(const Config&) = delete;
119
120 private:
121 YAML::Node m_config_node;
122 std::string m_proc_name;
123 std::string m_log_level;
124 std::string m_log_properties;
125 std::string m_config_filename;
126 std::string m_scxml_filename;
127 std::string m_db_host_endpoint;
128 int m_db_timeout_sec;
129 std::string m_req_endpoint;
130};
131
132} // namespace {{cookiecutter.module_name}}
133
134#endif // {{cookiecutter.module_name|upper}}_CONFIG_HPP_
const std::string CONFIG_DEFAULT_LOG_PROPERTIES
Definition config.hpp:33
const std::string CONFIG_DEFAULT_REQ_ENDPOINT
Definition config.hpp:34
const std::string CONFIG_DEFAULT_PROCNAME
Definition config.hpp:27
const std::string CONFIG_DEFAULT_FILENAME
Definition config.hpp:29
const std::string CONFIG_DEFAULT_SCXML_FILENAME
Definition config.hpp:30
const std::string CONFIG_ENVVAR_DBHOST
Definition config.hpp:35
const std::string CONFIG_DEFAULT_LOGLEVEL
Definition config.hpp:26
const int CONFIG_DEFAULT_DB_TIMEOUT_SEC
Definition config.hpp:29
const std::string CONFIG_DEFAULT_DB_ENDPOINT
Definition config.hpp:28
#define cookiecutter