ifw-fcf  5.0.0-pre2
config.hpp
Go to the documentation of this file.
1 
8 #ifndef FCF_DEVMGR_COMMON_CONFIG_HPP_
9 #define FCF_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 <utils/bat/config.hpp>
19 #include <core/dit/fits/fits.hpp>
20 #include <utils/bat/config.hpp>
21 
22 #include <fcf/devmgr/common/events.rad.hpp>
23 
24 namespace fcf {
25  namespace devmgr {
26  namespace common {
27 
33  constexpr auto CONFIG_DEFAULT_DICTIONARIES = "dictionary/dit/stddid/primary.did.yaml";
34  constexpr auto CONFIG_DEFAULT_FIT_PREFIX = "INS";
35 
36 
37  constexpr auto KEY_CONFIG_EXT_PUB_ENDPOINT = "ext_pub_endpoint";
38  constexpr auto KEY_CONFIG_EXT_SUB_ENDPOINT = "ext_sub_endpoint";
39 
40  constexpr auto KEY_CONFIG_DEVICES = "devices";
41  constexpr auto KEY_CONFIG_DEVFILE = "cfgfile";
42  constexpr auto KEY_CONFIG_TYPE = "type";
43  constexpr auto KEY_CONFIG_DEVNAME = "name";
44  constexpr auto KEY_CONFIG_INTERFACE = "interface";
45 
46 
50  constexpr auto CONFIG_ENVVAR_DBHOST = "DB_HOST";
51 
56  class Config : public utils::bat::Config {
57  public:
65  Config();
66 
70  virtual ~Config();
71 
79  void LoadConfig(const std::string& filename = "", bool reset = false);
80 
81 
86  const int GetNumDevices() const;
87 
88  //const std::string GetFitsPrefix() const;
89 
95  const std::string GetDeviceName(const int& device_index) const;
96 
102  const std::string GetDeviceFile(const int& device_index) const;
103 
109  const std::string GetDeviceType(const int& device_index) const;
110 
116  const std::string GetDeviceInterface(const int& device_index) const;
117 
126  virtual void GetConfigList(utils::bat::DbVector& cfg_list) override;
127 
128 
129 
130 private:
131 
132  Config(const Config&) = delete;
133  Config& operator=(const Config&) = delete;
134 
135 
136  std::string m_fits_prefix;
137  int m_num_devices;
138  int m_num_dictionaries;
139  unsigned int m_cmd_tout;
140  core::dit::did::Did m_did;
141  };
142  }
143  }
144 } // namespace devmgr::common
145 
146 
147 #endif // FCF_DEVMGR_COMMON_CONFIG_HPP_
Definition: config.hpp:56
const std::string GetDeviceInterface(const int &device_index) const
GetDeviceInterface.
Definition: config.cpp:146
const std::string GetDeviceType(const int &device_index) const
GetDeviceType.
Definition: config.cpp:125
const std::string GetDeviceName(const int &device_index) const
GetDeviceName.
Definition: config.cpp:110
Config()
Definition: config.cpp:39
virtual ~Config()
Definition: config.cpp:46
const std::string GetDeviceFile(const int &device_index) const
GetDeviceFile.
Definition: config.cpp:135
const int GetNumDevices() const
GetNumDevices.
Definition: config.cpp:102
virtual void GetConfigList(utils::bat::DbVector &cfg_list) override
Get configuration list.
Definition: config.cpp:156
void LoadConfig(const std::string &filename="", bool reset=false)
Definition: config.cpp:50
constexpr auto KEY_CONFIG_EXT_SUB_ENDPOINT
Definition: config.hpp:38
constexpr auto KEY_CONFIG_DEVNAME
Definition: config.hpp:43
constexpr auto KEY_CONFIG_INTERFACE
Definition: config.hpp:44
constexpr auto KEY_CONFIG_EXT_PUB_ENDPOINT
Definition: config.hpp:37
constexpr auto CONFIG_DEFAULT_FIT_PREFIX
Definition: config.hpp:34
constexpr auto CONFIG_DEFAULT_DICTIONARIES
Definition: config.hpp:33
constexpr auto KEY_CONFIG_TYPE
Definition: config.hpp:42
constexpr auto CONFIG_ENVVAR_DBHOST
Definition: config.hpp:50
constexpr auto KEY_CONFIG_DEVICES
Definition: config.hpp:40
constexpr auto KEY_CONFIG_DEVFILE
Definition: config.hpp:41
Definition: actionMgr.cpp:29