ifw-core 5.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
utils::bat::Config Class Reference

#include <config.hpp>

Inheritance diagram for utils::bat::Config:
utils::bat::IConfig

Public Member Functions

 Config ()
 
bool ParseOptions (int argc, char *argv[]) override
 
void LoadConfig (const std::string &filename="", bool reset=false) override
 
virtual ~Config ()=default
 
const std::string GetServerId () const override
 
const std::string GetMsgReplierEndpoint () const override
 
const std::string GetMsgPubEndpoint () const override
 
const timeval GetDbTimeout () const override
 
const unsigned int GetDbConnTimeout () const override
 
const unsigned int GetDbTaskPeriod () const override
 
const std::string GetSmScxmlFilename () const override
 
const std::string GetConfigFilename () const override
 
const std::string GetLogProperties () const override
 
const std::string GetLogLevel () const override
 
const unsigned int GetReqTout () const override
 Get the command timeout.
 
const unsigned int GetMonTout () const override
 Get the wait timeout.
 
const std::string GetOldbPrefix () const
 Get OLDB prefix.
 
const std::string GetFitsPrefix () const
 Get FITS prefix.
 
const std::string GetConfigAsString () const override
 Get the actual configuration as a string.
 
void SetConfigAsString (const std::string &config) override
 Load a configuration as string.
 
std::string GetResolvedFilename (const std::string &config)
 Resolve file name.
 
const elt::configng::CiiConfigInstanceNamespace & GetInstance () const
 Merges an existing configuration with another config document.
 
core::dit::did::DidGetDid ()
 
virtual void GetConfigList (DbVector &cfg_list)
 
CliConfigGetCliCfg ()
 
void SetConfigFilename (const std::string cfg_file)
 
const std::string GetVersion () const
 GetVersion.
 
virtual bool ParseOptions (int argc, char *argv[])=0
 
virtual void LoadConfig (const std::string &filename="", bool reset=false)=0
 
virtual const std::string GetServerId () const =0
 
virtual const std::string GetMsgReplierEndpoint () const =0
 
virtual const std::string GetMsgPubEndpoint () const =0
 
virtual const timeval GetDbTimeout () const =0
 
virtual const unsigned int GetDbConnTimeout () const =0
 
virtual const unsigned int GetDbTaskPeriod () const =0
 
virtual const std::string GetSmScxmlFilename () const =0
 
virtual const std::string GetConfigFilename () const =0
 
virtual const std::string GetLogProperties () const =0
 
virtual const std::string GetLogLevel () const =0
 
virtual const unsigned int GetMonTout () const =0
 GetMonTout.
 
virtual const unsigned int GetReqTout () const =0
 GetReqTout.
 
virtual const std::string GetConfigAsString () const =0
 Get the actual configuration as a string.
 
virtual void SetConfigAsString (const std::string &config)=0
 

Protected Member Functions

void MergeConfig (const elt::configng::CiiConfigDocument &doc, bool check=true)
 Merges a configuration file.
 
void CheckConfig (const elt::configng::CiiConfigDocument &doc) const
 Validates the document configuration.
 

Protected Attributes

std::unique_ptr< elt::configng::CiiConfigDocument > m_config_doc
 Internal configuration document object.
 
CliConfig m_cli_config
 Command line parameters.
 
boost::posix_time::ptime m_file_utc
 
std::string m_config_filename
 
core::dit::did::Did m_did
 
log4cplus::Logger m_logger
 

Detailed Description

This class provide access to the command line options and the configuration parameters stored in a configuration file.

It uses the new CII Config service.

The basic schema for the configuration is found in file definitions.yaml.

The supported command line parameters are:

Options: -h [ –help ] Print help messages -i [ –server-id ] arg Server ID -l [ –log-level ] arg Log level: ERROR, INFO, DEBUG, TRACE -p [ –log-prop-file ] arg Log property filename -c [ –config ] arg Configuration filename -r [ –req-endpoint ] arg Req/Rep endpoint (zpb.rr://<ipaddr>:<port>/) -d [ –db-endpoint ] arg Redis DB endpoint (<ipaddr>:<port>)

Constructor & Destructor Documentation

◆ Config()

utils::bat::Config::Config ( )

Default constructor.

Initialize application configuration attributes by

  • first use the default constant values defined in the header
  • override the constant values with environment variables (if defined)

◆ ~Config()

virtual utils::bat::Config::~Config ( )
virtualdefault

Default destructor.

Member Function Documentation

◆ CheckConfig()

void utils::bat::Config::CheckConfig ( const elt::configng::CiiConfigDocument &  doc) const
protected

Validates the document configuration.

Parameters
docConfig document object to be validated
Exceptions
std::runtime_errorin case check reported issues.

◆ GetCliCfg()

CliConfig & utils::bat::Config::GetCliCfg ( )
Returns
A reference to the internal CliConfig object.

◆ GetConfigAsString()

const std::string utils::bat::Config::GetConfigAsString ( ) const
overridevirtual

Get the actual configuration as a string.

Implements utils::bat::IConfig.

◆ GetConfigFilename()

const std::string utils::bat::Config::GetConfigFilename ( ) const
overridevirtual
Returns
The application configuration filename.

Implements utils::bat::IConfig.

◆ GetConfigList()

void utils::bat::Config::GetConfigList ( DbVector cfg_list)
virtual

◆ GetDbConnTimeout()

const unsigned int utils::bat::Config::GetDbConnTimeout ( ) const
overridevirtual
Returns
The timeout used when communicating to the runtime DB.

Implements utils::bat::IConfig.

◆ GetDbTaskPeriod()

const unsigned int utils::bat::Config::GetDbTaskPeriod ( ) const
overridevirtual
Returns
The period used by the DB worker thread.

Implements utils::bat::IConfig.

◆ GetDbTimeout()

const timeval utils::bat::Config::GetDbTimeout ( ) const
overridevirtual
Returns
The timeout used when communicating to the runtime DB.

Implements utils::bat::IConfig.

◆ GetDid()

core::dit::did::Did & utils::bat::Config::GetDid ( )
Returns
A reference to the Did interface object.

◆ GetFitsPrefix()

const std::string utils::bat::Config::GetFitsPrefix ( ) const

Get FITS prefix.

Returns

◆ GetInstance()

const elt::configng::CiiConfigInstanceNamespace & utils::bat::Config::GetInstance ( ) const

Merges an existing configuration with another config document.

Parameters
docConfig document object to be merged
checkFlag to perform a check once is merged.
Exceptions
std::runtime_errorin case merge reported issues.

Get object document instance

Returns
const instance of configuration documen object.

◆ GetLogLevel()

const std::string utils::bat::Config::GetLogLevel ( ) const
overridevirtual
Returns
The configured log level.

Implements utils::bat::IConfig.

◆ GetLogProperties()

const std::string utils::bat::Config::GetLogProperties ( ) const
overridevirtual
Returns
The application process name.

Implements utils::bat::IConfig.

◆ GetMonTout()

const unsigned int utils::bat::Config::GetMonTout ( ) const
overridevirtual

Get the wait timeout.

Returns

Implements utils::bat::IConfig.

◆ GetMsgPubEndpoint()

const std::string utils::bat::Config::GetMsgPubEndpoint ( ) const
overridevirtual
Returns
The network endpoint to publish internally within the application. The format is the CII URI For example: "zpb.rr://127.0.0.1:12081/AppCmds"

Implements utils::bat::IConfig.

◆ GetMsgReplierEndpoint()

const std::string utils::bat::Config::GetMsgReplierEndpoint ( ) const
overridevirtual
Returns
The network endpoint to send request to this application. The format is "\<protocol\>://\<ipaddr\>:\<port\>" where <protocol> is 'tcp' For example: "tcp://127.0.0.1:5577"

Implements utils::bat::IConfig.

◆ GetOldbPrefix()

const std::string utils::bat::Config::GetOldbPrefix ( ) const

Get OLDB prefix.

Returns

◆ GetReqTout()

const unsigned int utils::bat::Config::GetReqTout ( ) const
overridevirtual

Get the command timeout.

Returns

Implements utils::bat::IConfig.

◆ GetResolvedFilename()

std::string utils::bat::Config::GetResolvedFilename ( const std::string &  config = "")

Resolve file name.

Parameters
configConfigurtion filename
Exceptions
standardexception if file cannot be found.
Returns
resolved filename

◆ GetServerId()

const std::string utils::bat::Config::GetServerId ( ) const
overridevirtual
Returns
return the server identifier

Implements utils::bat::IConfig.

◆ GetSmScxmlFilename()

const std::string utils::bat::Config::GetSmScxmlFilename ( ) const
overridevirtual
Returns
The SCXML State Machine model filename used by the application.

Implements utils::bat::IConfig.

◆ GetVersion()

const std::string utils::bat::Config::GetVersion ( ) const

GetVersion.

Returns

◆ LoadConfig()

void utils::bat::Config::LoadConfig ( const std::string &  filename = "",
bool  reset = false 
)
overridevirtual

This method load from a configuration file the application configuration overriding the initialization done in the constructor and the command line options.

Parameters
[in]filenameApplication configuration filename.

Implements utils::bat::IConfig.

◆ MergeConfig()

void utils::bat::Config::MergeConfig ( const elt::configng::CiiConfigDocument &  doc,
bool  check = true 
)
protected

Merges a configuration file.

Parameters
docConfig document object to be validated.
checkFlag to verify after the merge.
Exceptions
std::runtime_errorin case check reported issues.

◆ ParseOptions()

bool utils::bat::Config::ParseOptions ( int  argc,
char *  argv[] 
)
overridevirtual

This method parses the command line parameters overriding the initialization done in the constructor.

Parameters
[in]argcNumber of command line options.
[in]argvPointer to the array of command line options.
Returns
false if the help option has been invoked, true otherwise.

Implements utils::bat::IConfig.

◆ SetConfigAsString()

void utils::bat::Config::SetConfigAsString ( const std::string &  config)
overridevirtual

Load a configuration as string.

Parameters
configconfiguration as string to be loaded.

Implements utils::bat::IConfig.

◆ SetConfigFilename()

void utils::bat::Config::SetConfigFilename ( const std::string  cfg_file)

Set the internal configuration filename.

Member Data Documentation

◆ m_cli_config

CliConfig utils::bat::Config::m_cli_config
protected

Command line parameters.

◆ m_config_doc

std::unique_ptr<elt::configng::CiiConfigDocument> utils::bat::Config::m_config_doc
protected

Internal configuration document object.

◆ m_config_filename

std::string utils::bat::Config::m_config_filename
protected

◆ m_did

core::dit::did::Did utils::bat::Config::m_did
protected

◆ m_file_utc

boost::posix_time::ptime utils::bat::Config::m_file_utc
protected

◆ m_logger

log4cplus::Logger utils::bat::Config::m_logger
protected

The documentation for this class was generated from the following files: