ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
config.hpp
Go to the documentation of this file.
1 
8 #ifndef DEVMGR_COMMON_CONFIG_HPP_
9 #define DEVMGR_COMMON_CONFIG_HPP_
10 
11 // System headers
12 #include <string>
13 
14 // Third party headers
15 #include <yaml-cpp/yaml.h>
16 
17 // Local headers
18 #include <dit/fits/fits.hpp>
19 #include <devmgr/common/iConfig.hpp>
20 
21 #include <devmgr/common/events.rad.hpp>
22 
23 
24 namespace devmgr {
25  namespace common {
26 
30  const std::string CONFIG_DEFAULT_PROCNAME = "devmgrServer";
33  const std::string CONFIG_DEFAULT_FILENAME = "";
34  const std::string CONFIG_DEFAULT_SCXML_FILENAME = "Supervisor.xml";
35  const std::string CONFIG_DEFAULT_LOGLEVEL = "ERROR";
36  const std::string CONFIG_DEFAULT_DB_ENDPOINT = "127.0.0.1:6379";
37  const int CONFIG_DEFAULT_DB_TIMEOUT = 2;
38  const std::string CONFIG_DEFAULT_REQ_ENDPOINT = "tcp://*:5578";
39  const std::string CONFIG_DEFAULT_PUB_ENDPOINT = "tcp://*:5568";
40  const std::string CONFIG_DEFAULT_SUB_ENDPOINT = "tcp://localhost:5568";
41  const std::string CONFIG_DEFAULT_EXT_PUB_ENDPOINT = "tcp://*:5558";
42  const std::string CONFIG_DEFAULT_EXT_SUB_ENDPOINT = "tcp://localhost:5558";
43  const std::string CONFIG_DEFAULT_DICTIONARIES = "devmgr/server/primary.did";
44  const std::string CONFIG_DEFAULT_FIT_PREFIX = "FCS";
45 
46  const unsigned int CONFIG_DEFAULT_CMD_TOUT = 60000;
47 
51  const std::string CONFIG_ENVVAR_DBHOST = "DB_HOST";
52 
57  class Config : public IConfig {
58  public:
66  Config();
67 
71  virtual ~Config();
72 
81  bool ParseOptions(int argc, char* argv[]);
82 
90  void LoadConfig(const std::string& filename = "");
91 
95  const std::string GetServerId() const;
101  const std::string GetMsgReplierEndpoint() const;
102 
106  const std::string GetDbEndpoint() const;
107 
113  const std::string GetPubEndpoint() const;
114 
118  const std::string GetSubEndpoint() const;
119 
125  const std::string GetExtPubEndpoint() const;
126 
130  const std::string GetExtSubEndpoint() const;
131 
135  const timeval GetDbTimeout() const;
136 
140  const std::string GetSmScxmlFilename() const;
141 
145  const std::string GetConfigFilename() const;
146 
150  const std::string GetProcName() const;
151 
155  const std::string GetLogLevel() const;
156 
161  const int GetNumDevices();
162 
163  const std::string GetFitsPrefix() const;
164 
170  const std::string GetDeviceName(const int& device_index);
171 
177  const std::string GetDeviceFile(const std::string& name);
178 
184  const std::string GetDeviceType(const std::string& name);
185 
189  virtual dit::did::Did& GetDid();
190 
199  virtual void GetConfigList(std::vector<std::string>& cfg_list);
200 
205  const unsigned int GetCmdTout();
206 
211  void SetCmdTout(const unsigned int cmd_tout);
212 
213  Config(const Config&) = delete;
214  Config& operator=(const Config&) = delete;
215 
216  private:
217  YAML::Node m_config_node;
218  std::string m_server_id;
219  std::string m_proc_name;
220  std::string m_log_level;
221  std::string m_config_filename;
222  std::string m_scxml_filename;
223  std::string m_db_host_endpoint;
224  int m_db_timeout_sec;
225  std::string m_req_endpoint;
226  std::string m_pub_endpoint;
227  std::string m_sub_endpoint;
228  std::string m_ext_pub_endpoint;
229  std::string m_ext_sub_endpoint;
230  std::string m_fits_prefix;
231  int m_num_devices;
232  int m_num_dictionaries;
233  unsigned int m_cmd_tout;
234  dit::did::Did m_did;
235  };
236 
237  } // namespace common
238 } // namespace devmgr
239 
240 
241 #endif // DEVMGR_COMMON_CONFIG_HPP_
const int CONFIG_DEFAULT_DB_TIMEOUT
Definition: config.hpp:37
const std::string CONFIG_DEFAULT_EXT_PUB_ENDPOINT
Definition: config.hpp:41
const std::string GetFitsPrefix() const
Get FITS prefix.
Definition: config.cpp:404
const std::string CONFIG_DEFAULT_FIT_PREFIX
Definition: config.hpp:44
const std::string GetSubEndpoint() const
Definition: config.cpp:386
Config & operator=(const Config &)=delete
Disable copy constructor.
Config
Definition: Test{{cookiecutter.device_name}}Config.cpp:44
const std::string CONFIG_DEFAULT_DICTIONARIES
Definition: config.hpp:43
const unsigned int CONFIG_DEFAULT_CMD_TOUT
Definition: config.hpp:46
const unsigned int GetCmdTout()
GetCmdTout.
Definition: config.cpp:487
const std::string GetDbEndpoint() const
Definition: config.cpp:374
const std::string CONFIG_DEFAULT_PUB_ENDPOINT
Definition: config.hpp:39
const timeval GetDbTimeout() const
Definition: config.cpp:410
virtual dit::did::Did & GetDid()
Definition: config.cpp:494
const std::string CONFIG_DEFAULT_EXT_SUB_ENDPOINT
Definition: config.hpp:42
const std::string GetDeviceType(const std::string &name)
GetDeviceType.
Definition: config.cpp:460
const std::string CONFIG_DEFAULT_LOGLEVEL
Definition: config.hpp:35
const std::string GetPubEndpoint() const
Definition: config.cpp:380
const std::string CONFIG_DEFAULT_SUB_ENDPOINT
Definition: config.hpp:40
const std::string GetServerId() const
Definition: config.cpp:362
const std::string GetMsgReplierEndpoint() const
Definition: config.cpp:367
const std::string CONFIG_DEFAULT_PROCNAME
Definition: config.hpp:30
const std::string GetExtPubEndpoint() const
Definition: config.cpp:392
const std::string CONFIG_DEFAULT_REQ_ENDPOINT
Definition: config.hpp:38
const std::string GetSmScxmlFilename() const
Definition: config.cpp:417
virtual void GetConfigList(std::vector< std::string > &cfg_list)
Get configuration list.
Definition: config.cpp:501
virtual ~Config()
Definition: config.cpp:70
const std::string GetConfigFilename() const
Definition: config.cpp:423
const std::string GetDeviceFile(const std::string &name)
GetDeviceFile.
Definition: config.cpp:472
const std::string CONFIG_DEFAULT_SCXML_FILENAME
Definition: config.hpp:34
void LoadConfig(const std::string &filename="")
Definition: config.cpp:152
const std::string CONFIG_DEFAULT_FILENAME
Definition: config.hpp:33
Config()
Definition: config.cpp:32
void SetCmdTout(const unsigned int cmd_tout)
SetCmdTout.
Definition: config.cpp:542
const std::string GetLogLevel() const
Definition: config.cpp:435
const int GetNumDevices()
GetNumDevices.
Definition: config.cpp:441
const std::string GetExtSubEndpoint() const
Definition: config.cpp:398
bool ParseOptions(int argc, char *argv[])
Definition: config.cpp:74
const std::string GetProcName() const
Definition: config.cpp:429
Data Interface Dictionary class.
Definition: Did.hpp:25
const std::string GetDeviceName(const int &device_index)
GetDeviceName.
Definition: config.cpp:447
const std::string CONFIG_DEFAULT_DB_ENDPOINT
Definition: config.hpp:36
const std::string CONFIG_ENVVAR_DBHOST
Definition: config.hpp:51
optional string name
Definition: topics.proto:50