rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
config.hpp
Go to the documentation of this file.
1 
9 #ifndef EXMALSERVER_CONFIG_HPP_
10 #define EXMALSERVER_CONFIG_HPP_
11 
12 #include <yaml-cpp/yaml.h>
13 
14 #include <string>
15 
16 namespace exmalserver {
17 
21 const std::string CONFIG_DEFAULT_PROCNAME = "exmalServer";
24 const std::string CONFIG_DEFAULT_FILENAME = "";
25 const std::string CONFIG_DEFAULT_SCXML_FILENAME = "exmalserver/sm.xml";
26 const std::string CONFIG_DEFAULT_LOGLEVEL = "INFO";
27 const std::string CONFIG_DEFAULT_LOG_PROPERTIES = "exmalserver/log.properties";
28 const std::string CONFIG_DEFAULT_DB_ENDPOINT = "127.0.0.1:6379";
29 const int CONFIG_DEFAULT_DB_TIMEOUT_SEC = 2;
30 const std::string CONFIG_DEFAULT_REQ_ENDPOINT = "zpb.rr://127.0.0.1:12081/";
31 
35 const std::string CONFIG_ENVVAR_DBHOST = "DB_HOST";
36 
41 class Config {
42  public:
50  Config();
51 
55  virtual ~Config();
56 
65  bool ParseOptions(int argc, char* argv[]);
66 
74  void LoadConfig(const std::string& filename = "");
75 
81  const std::string& GetMsgReplierEndpoint() const;
82 
86  const std::string& GetDbEndpoint() const;
87 
91  const timeval GetDbTimeout() const;
92 
96  const std::string& GetSmScxmlFilename() const;
97 
101  const std::string& GetConfigFilename() const;
102 
106  const std::string& GetProcName() const;
107 
111  const std::string& GetLogLevel() const;
112 
116  const std::string& GetLogProperties() const;
117 
118  Config(const Config&) = delete;
119  Config& operator=(const Config&) = delete;
120 
121  private:
122  YAML::Node m_config_node;
123  std::string m_proc_name;
124  std::string m_log_level;
125  std::string m_log_properties;
126  std::string m_config_filename;
127  std::string m_scxml_filename;
128  std::string m_db_host_endpoint;
129  int m_db_timeout_sec;
130  std::string m_req_endpoint;
131 };
132 
133 } // namespace exmalserver
134 
135 #endif // EXMALSERVER_CONFIG_HPP_
const std::string CONFIG_DEFAULT_FILENAME
Definition: config.hpp:24
const timeval GetDbTimeout() const
Definition: config.cpp:196
const std::string & GetDbEndpoint() const
Definition: config.cpp:191
const std::string CONFIG_DEFAULT_REQ_ENDPOINT
Definition: config.hpp:30
const std::string & GetMsgReplierEndpoint() const
Definition: config.cpp:186
const std::string & GetLogLevel() const
Definition: config.cpp:217
const std::string & GetLogProperties() const
Definition: config.cpp:222
virtual ~Config()
Definition: config.cpp:57
Config()
Definition: config.cpp:26
const std::string CONFIG_DEFAULT_LOGLEVEL
Definition: config.hpp:26
const std::string CONFIG_ENVVAR_DBHOST
Definition: config.hpp:35
const std::string & GetSmScxmlFilename() const
Definition: config.cpp:202
const std::string & GetProcName() const
Definition: config.cpp:212
const std::string CONFIG_DEFAULT_PROCNAME
Definition: config.hpp:21
const std::string & GetConfigFilename() const
Definition: config.cpp:207
Config & operator=(const Config &)=delete
Disable copy constructor.
void LoadConfig(const std::string &filename="")
Definition: config.cpp:130
const std::string CONFIG_DEFAULT_SCXML_FILENAME
Definition: config.hpp:25
const std::string CONFIG_DEFAULT_DB_ENDPOINT
Definition: config.hpp:28
const int CONFIG_DEFAULT_DB_TIMEOUT_SEC
Definition: config.hpp:29
const std::string CONFIG_DEFAULT_LOG_PROPERTIES
Definition: config.hpp:27
bool ParseOptions(int argc, char *argv[])
Definition: config.cpp:59