ifw-ccf  1.0.0
config.hpp
Go to the documentation of this file.
1 
5 #ifndef CCFCONTROL_CONFIG_HPP_
6 #define CCFCONTROL_CONFIG_HPP_
7 
8 #include <string>
9 
10 #include <yaml-cpp/yaml.h>
11 
13 
14 namespace ccf::control {
15 
16 // TODO: Probably better to move these cfg par names to the ccf::common::ConfigBase class to have them collected in one place.
17 
19 const std::string CFG_DEF_PROCNAME = "dcsControl";
20 
22 const std::string CFG_KEY_INPUT_Q_SIZE = "acq.inputq.size";
23 
25 // @{
26 const std::string CFG_KEY_PROC_NAME = "proc%d.name";
27 const std::string CFG_KEY_OUTPUT_Q_SIZE = "proc%d.outputpq.size";
28 const std::string CFG_KEY_PROC_RECIPE_ADAPTER = "proc%d.recipe%d.adapter";
29 const std::string CFG_KEY_PROC_RECIPE_NAME = "proc%d.recipe%d.name";
30 const std::string CFG_KEY_PROC_PUB_ADAPTER = "proc%d.pub%d.adapter";
31 const std::string CFG_KEY_PROC_PUB_NAME = "proc%d.pub%d.name";
32 // @}
33 
35 const std::string CFG_KEY_INIT_SETUP = "sys.init.setup";
36 
38 const std::string CFG_KEY_MON_PERIOD = "mon.period";
39 
41 const std::string CONFIG_ENVVAR_DBHOST = "DB_HOST";
42 
44 class Config {
45  public:
46 
54  Config();
55 
57  virtual ~Config();
58 
67  bool ParseOptions(int argc, char* argv[]);
68  // TODO: Move to ccf::common::ConfigBase as virtual method.
69 
77  void LoadConfig(const std::string& filename = "");
78 
84  const std::string& GetMsgReplierEndpoint() const;
85 
87  const std::string& GetDbEndpoint() const;
88  // TODO: Check if used.
89 
91  const timeval GetDbTimeout() const;
92  // TODO: Check if used.
93 
95  const std::string& GetSmScxmlFilename() const;
96 
98  const std::string& GetConfigFilename() const;
99 
101  const std::string& GetProcName() const;
102 
104  const std::string& GetLogLevel() const;
105 
107  const std::string& GetLogProperties() const;
108 
110  int16_t GetNbOfProcThreads();
111 
112  Config(const Config&) = delete;
113  Config& operator=(const Config&) = delete;
114 
115  private:
116  // TODO: Move to ccf::common::AppBase
117  rad::LogInitializer m_log_initializer;
118  std::string m_log_properties;
119  std::string m_proc_name;
120  std::string m_log_level;
121  std::string m_config_filename;
122  std::string m_scxml_filename;
123  std::string m_db_host_endpoint;
124  int m_db_timeout_sec;
125  std::string m_req_endpoint;
126 
127  int16_t m_nb_of_proc_threads;
128 };
129 
130 } // namespace ccf::control
131 
132 #endif // CCFCONTROL_CONFIG_HPP_
ccf::control::CFG_KEY_PROC_NAME
const std::string CFG_KEY_PROC_NAME
Definition: config.hpp:26
ccf::control::Config::Config
Config(const Config &)=delete
ccf::control::Config
Provides access to the command line options and the configuration parameters stored in the configurat...
Definition: config.hpp:44
ccf::control::Config::GetConfigFilename
const std::string & GetConfigFilename() const
Definition: config.cpp:181
ccf::control::Config::GetLogLevel
const std::string & GetLogLevel() const
Definition: config.cpp:191
ccf::control::CFG_KEY_PROC_PUB_NAME
const std::string CFG_KEY_PROC_PUB_NAME
Definition: config.hpp:31
ccf::control::Config::~Config
virtual ~Config()
Default destructor.
Definition: config.cpp:28
ccf::control::CFG_KEY_OUTPUT_Q_SIZE
const std::string CFG_KEY_OUTPUT_Q_SIZE
Definition: config.hpp:27
ccf::control::CFG_KEY_PROC_RECIPE_NAME
const std::string CFG_KEY_PROC_RECIPE_NAME
Definition: config.hpp:29
ccf::control::Config::Config
Config()
Definition: config.cpp:23
ccf::control::Config::GetNbOfProcThreads
int16_t GetNbOfProcThreads()
Definition: config.cpp:201
ccf::control::Config::GetDbTimeout
const timeval GetDbTimeout() const
Definition: config.cpp:170
ccf::control::CFG_DEF_PROCNAME
const std::string CFG_DEF_PROCNAME
Default application name.
Definition: config.hpp:19
ccf::control::CFG_KEY_INPUT_Q_SIZE
const std::string CFG_KEY_INPUT_Q_SIZE
Configuration parameter defining the number of frame buffers in the Input Queue.
Definition: config.hpp:22
ccf::control::CFG_KEY_PROC_PUB_ADAPTER
const std::string CFG_KEY_PROC_PUB_ADAPTER
Definition: config.hpp:30
ccf::control::CFG_KEY_MON_PERIOD
const std::string CFG_KEY_MON_PERIOD
Cfg par defining the Monitor Thread period.
Definition: config.hpp:38
ccf::control::CONFIG_ENVVAR_DBHOST
const std::string CONFIG_ENVVAR_DBHOST
Application configuration environment variables.
Definition: config.hpp:41
ccf::control::Config::LoadConfig
void LoadConfig(const std::string &filename="")
Definition: config.cpp:123
ccf::control::Config::GetLogProperties
const std::string & GetLogProperties() const
Definition: config.cpp:196
ccf::control::CFG_KEY_PROC_RECIPE_ADAPTER
const std::string CFG_KEY_PROC_RECIPE_ADAPTER
Definition: config.hpp:28
ccf::control::Config::GetProcName
const std::string & GetProcName() const
Definition: config.cpp:186
ccf::control::Config::GetMsgReplierEndpoint
const std::string & GetMsgReplierEndpoint() const
Definition: config.cpp:160
ccf::control::Config::operator=
Config & operator=(const Config &)=delete
Disable copy constructor.
ccf::control
Definition: acqThread.cpp:10
ccf::control::CFG_KEY_INIT_SETUP
const std::string CFG_KEY_INIT_SETUP
Cfg parameter defining the CCF Initialisation Setup.
Definition: config.hpp:35
ccf::control::Config::ParseOptions
bool ParseOptions(int argc, char *argv[])
Definition: config.cpp:34
ccf::control::Config::GetDbEndpoint
const std::string & GetDbEndpoint() const
Definition: config.cpp:165
ccf::control::Config::GetSmScxmlFilename
const std::string & GetSmScxmlFilename() const
Definition: config.cpp:176
configBase.hpp