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 SERVER_CONFIG_HPP_
10 #define SERVER_CONFIG_HPP_
11 
12 #include <yaml-cpp/yaml.h>
13 
14 #include <string>
15 
16 namespace server {
17 
21 const std::string CONFIG_DEFAULT_PROCNAME = "radServer";
22 const std::string CONFIG_DEFAULT_FILENAME = "radServer/config.yaml";
23 const std::string CONFIG_DEFAULT_SCXML_FILENAME = "radServer/Simple.xml";
24 const std::string CONFIG_DEFAULT_SCXML_APPEND_FILENAME = "radServer/SimpleAppend.xml";
25 const std::string CONFIG_DEFAULT_LOG_LEVEL = "INFO";
26 const std::string CONFIG_DEFAULT_LOG_PROPERTIES = "radServer/log.properties";
27 const std::string CONFIG_DEFAULT_DB_ENDPOINT = "127.0.0.1:6379";
28 const int CONFIG_DEFAULT_DB_TIMEOUT = 2; // sec
29 const std::string CONFIG_DEFAULT_REQ_ENDPOINT = "tcp://*:5577";
30 const std::string CONFIG_DEFAULT_SUB_ENDPOINT = "tcp://127.0.0.1::5560";
31 
35 const std::string CONFIG_ENVVAR_DBHOST = "DB_HOST";
36 
45 class Config {
46  public:
47  Config();
48  virtual ~Config();
49 
50  bool ParseOptions(int argc, char* argv[]);
51 
52  void LoadConfig(const std::string& filename = "");
53 
54  const std::string& GetMsgReplierEndpoint() const;
55  const std::string& GetMsgSubEndpoint() const;
56 
57  const std::string& GetDbEndpoint() const;
58  const timeval GetDbTimeout() const;
59 
60  const std::string& GetSmScxmlFilename() const;
61  const std::string& GetSmScxmlAppendFilename() const;
62 
63  const std::string& GetConfigFilename() const;
64  const std::string& GetProcName() const;
65  const std::string& GetLogLevel() const;
66  const std::string& GetLogProperties() const;
67 
68  Config(const Config&) = delete;
69  Config& operator=(const Config&) = delete;
70 
71  private:
72  YAML::Node m_config_node;
73 
74  std::string m_proc_name;
75  std::string m_log_level;
76  std::string m_log_properties;
77  std::string m_config_filename;
78  std::string m_scxml_filename;
79  std::string m_scxml_append_filename;
80  std::string m_db_host_endpoint;
81  int m_db_timeout_sec;
82  std::string m_req_endpoint;
83  std::string m_sub_endpoint;
84 };
85 
86 } // namespace server
87 
88 #endif // SERVER_CONFIG_HPP_
const int CONFIG_DEFAULT_DB_TIMEOUT
Definition: config.hpp:28
const std::string & GetConfigFilename() const
Definition: config.cpp:281
const std::string CONFIG_DEFAULT_DB_ENDPOINT
Definition: config.hpp:27
const std::string & GetLogProperties() const
Definition: config.cpp:305
const std::string & GetProcName() const
Definition: config.cpp:289
Definition: config.hpp:45
bool ParseOptions(int argc, char *argv[])
Definition: config.cpp:81
Config & operator=(const Config &)=delete
Disable copy constructor.
const std::string & GetLogLevel() const
Definition: config.cpp:297
const std::string CONFIG_DEFAULT_SUB_ENDPOINT
Definition: config.hpp:30
const std::string & GetDbEndpoint() const
Definition: config.cpp:248
const std::string & GetSmScxmlFilename() const
Definition: config.cpp:265
Config()
Definition: config.cpp:35
def server
Server receiving requests and publishing topics.
Definition: hellorad.py:108
const std::string CONFIG_DEFAULT_LOG_LEVEL
Definition: config.hpp:25
const std::string CONFIG_DEFAULT_REQ_ENDPOINT
Definition: config.hpp:29
const std::string CONFIG_DEFAULT_SCXML_FILENAME
Definition: config.hpp:23
const std::string CONFIG_DEFAULT_LOG_PROPERTIES
Definition: config.hpp:26
const std::string & GetMsgSubEndpoint() const
Definition: config.cpp:240
const timeval GetDbTimeout() const
Definition: config.cpp:256
const std::string CONFIG_DEFAULT_FILENAME
Definition: config.hpp:22
void LoadConfig(const std::string &filename="")
Definition: config.cpp:159
const std::string CONFIG_DEFAULT_SCXML_APPEND_FILENAME
Definition: config.hpp:24
virtual ~Config()
Definition: config.cpp:71
const std::string & GetMsgReplierEndpoint() const
Definition: config.cpp:232
const std::string CONFIG_DEFAULT_PROCNAME
Definition: config.hpp:21
const std::string CONFIG_ENVVAR_DBHOST
Definition: config.hpp:35
const std::string & GetSmScxmlAppendFilename() const
Definition: config.cpp:273