7#ifndef CORE_UTILS_BAT_CONFIG_HPP_
8#define CORE_UTILS_BAT_CONFIG_HPP_
13#include <boost/date_time/posix_time/posix_time.hpp>
14#include <boost/program_options.hpp>
15#include <boost/optional.hpp>
21#include <config-ng/ciiConfigApi.hpp>
76 using DbPair = std::pair<std::string, std::any>;
166 void LoadConfig(
const std::string& filename =
"",
bool reset =
false)
override;
230 const unsigned int GetReqTout()
const override;
236 const unsigned int GetMonTout()
const override;
284 const elt::configng::CiiConfigInstanceNamespace&
GetInstance()
const;
317 void MergeConfig(
const elt::configng::CiiConfigDocument &doc,
bool check=
true);
325 void CheckConfig(
const elt::configng::CiiConfigDocument &doc)
const;
335 void OverrideFromCmdLine();
341 void SetLogProperties(
const std::string& filename);
358 std::stringstream m_default_stream;
359 int m_num_dictionaries;
Data Interface Dictionary class.
Definition did.hpp:29
Definition config.hpp:136
void SetConfigFilename(const std::string cfg_file)
Definition config.cpp:615
const elt::configng::CiiConfigInstanceNamespace & GetInstance() const
Merges an existing configuration with another config document.
Definition config.cpp:523
const std::string GetVersion() const
GetVersion.
Definition config.cpp:551
std::unique_ptr< elt::configng::CiiConfigDocument > m_config_doc
Internal configuration document object.
Definition config.hpp:345
void CheckConfig(const elt::configng::CiiConfigDocument &doc) const
Validates the document configuration.
Definition config.cpp:492
log4cplus::Logger m_logger
Definition config.hpp:351
const std::string GetServerId() const override
Definition config.cpp:260
const std::string GetMsgPubEndpoint() const override
Definition config.cpp:289
CliConfig & GetCliCfg()
Definition config.cpp:610
std::string GetResolvedFilename(const std::string &config)
Resolve file name.
Definition config.cpp:429
const std::string GetLogLevel() const override
Definition config.cpp:343
const std::string GetConfigAsString() const override
Get the actual configuration as a string.
Definition config.cpp:393
std::string m_config_filename
Definition config.hpp:349
const unsigned int GetDbConnTimeout() const override
Definition config.cpp:305
virtual void GetConfigList(DbVector &cfg_list)
Definition config.cpp:564
ifw::core::dit::did::Did m_did
Definition config.hpp:350
ifw::core::dit::did::Did & GetDid()
Definition config.cpp:544
virtual ~Config()=default
const std::string GetFitsPrefix() const
Get FITS prefix.
Definition config.cpp:383
const unsigned int GetMonTout() const override
Get the wait timeout.
Definition config.cpp:355
const std::string GetMsgReplierEndpoint() const override
Definition config.cpp:274
const std::string GetConfigFilename() const override
Definition config.cpp:318
const std::string GetSmScxmlFilename() const override
Definition config.cpp:312
boost::posix_time::ptime m_file_utc
Definition config.hpp:348
Config()
Definition config.cpp:28
void MergeConfig(const elt::configng::CiiConfigDocument &doc, bool check=true)
Merges a configuration file.
Definition config.cpp:468
const unsigned int GetReqTout() const override
Get the command timeout.
Definition config.cpp:363
const std::string GetOldbPrefix() const
Get OLDB prefix.
Definition config.cpp:370
bool ParseOptions(int argc, char *argv[]) override
Definition config.cpp:71
const timeval GetDbTimeout() const override
Definition config.cpp:296
const unsigned int GetDbTaskPeriod() const override
Definition config.cpp:620
const std::string GetLogProperties() const override
Definition config.cpp:327
void LoadConfig(const std::string &filename="", bool reset=false) override
Definition config.cpp:169
void SetConfigAsString(const std::string &config) override
Load a configuration as string.
Definition config.cpp:408
CliConfig m_cli_config
Command line parameters.
Definition config.hpp:347
Definition iConfig.hpp:19
Config class source file.
Definition config.cpp:26
constexpr unsigned int CONFIG_DEFAULT_WAIT_TOUT
Definition config.hpp:41
constexpr auto CONFIG_DEFAULT_OLDB_URI
Definition config.hpp:39
constexpr auto KEY_CONFIG_DB_TASK_PERIOD
Definition config.hpp:59
constexpr auto KEY_CONFIG_WAITTOUT
Definition config.hpp:66
constexpr auto KEY_CONTROL_SUBSTATE
Definition config.hpp:49
constexpr auto KEY_CONFIG_DB_PREFIX
Definition config.hpp:69
constexpr auto KEY_CONFIG_CMDTOUT
Definition config.hpp:67
constexpr auto CONFIG_DEFAULT_REQ_ENDPOINT
Definition config.hpp:37
constexpr auto CONFIG_DEFAULT_PUB_ENDPOINT
Definition config.hpp:38
constexpr auto KEY_CONFIG_SERVER
Definition config.hpp:65
constexpr auto CONFIG_DEFAULT_DB_ENDPOINT
Definition config.hpp:35
constexpr auto KEY_DB_STATES
Definition config.hpp:74
constexpr auto KEY_CONTROL_STATE
Definition config.hpp:48
constexpr auto KEY_CONFIG_FITS_PREFIX
Definition config.hpp:70
constexpr auto KEY_CONFIG_DB_ENDPOINT
Definition config.hpp:57
constexpr auto CONFIG_DEFAULT_SCXML_FILENAME
Definition config.hpp:33
constexpr auto KEY_CONFIG_VERSION
Definition config.hpp:71
constexpr unsigned int CONFIG_DEFAULT_CMD_TOUT
Definition config.hpp:42
constexpr unsigned int CONFIG_DEFAULT_DB_TIMEOUT
Definition config.hpp:36
constexpr auto KEY_CONFIG_SERVER_ID
Definition config.hpp:64
constexpr auto KEY_CONTROL_STATUS
Definition config.hpp:50
constexpr auto KEY_CONFIG_REQ_ENDPOINT
Definition config.hpp:55
constexpr auto KEY_CONFIG_DICTIONARIES
Definition config.hpp:68
constexpr auto CONFIG_DEFAULT_LOGLEVEL
Definition config.hpp:34
constexpr auto KEY_CONFIG_SM_SCXML
Definition config.hpp:60
constexpr auto CONFIG_DEFAULT_FILENAME
Definition config.hpp:32
std::pair< std::string, std::any > DbPair
Definition config.hpp:76
constexpr auto KEY_CONFIG_LOG_PROP
Definition config.hpp:63
constexpr auto CONFIG_DB_DELIMITER
Definition config.hpp:45
constexpr auto KEY_CONTROL_SUBSTATE_STR
Definition config.hpp:52
constexpr auto CONFIG_DEFAULT_PROCNAME
Definition config.hpp:29
constexpr auto KEY_CONFIG_DB_TIMEOUT
Definition config.hpp:58
constexpr auto KEY_CONFIG_LOG_LEVEL
Definition config.hpp:62
std::vector< DbPair > DbVector
Definition config.hpp:77
constexpr auto KEY_CONFIG_PUB_ENDPOINT
Definition config.hpp:56
constexpr auto KEY_CONFIG_FILENAME
Definition config.hpp:61
constexpr auto KEY_CONTROL_STATE_STR
Definition config.hpp:51
The CliConfig struct.
Definition config.hpp:86
boost::optional< std::string > m_log_level
Definition config.hpp:109
boost::optional< std::string > GetReqEndpoint()
Definition config.hpp:99
boost::optional< std::string > m_config_file
Definition config.hpp:110
boost::optional< std::string > GetLogPropFile()
Definition config.hpp:103
boost::optional< std::string > GetConfigFile()
Definition config.hpp:95
boost::optional< std::string > GetLogLevel()
Definition config.hpp:91
boost::optional< std::string > m_req_endpoint
Definition config.hpp:111
boost::optional< std::string > GetServerId()
Definition config.hpp:87
boost::optional< std::string > m_server_id
Definition config.hpp:108
boost::optional< std::string > m_log_prop_file
Definition config.hpp:112