8#ifndef SUP_SYSSUP_COMMON_CONFIG_HPP_
9#define SUP_SYSSUP_COMMON_CONFIG_HPP_
16#include <yaml-cpp/yaml.h>
17#include <boost/date_time/posix_time/posix_time.hpp>
20#include <ifw/core/utils/bat/config.hpp>
21#include <ifw/sup/syssup/common/events.rad.hpp>
48 const std::map<std::string, ScopeEnum>
ScopeMap {
74 inline std::optional<ScopeEnum>
GetScope(
const std::string& scope_str)
const;
98 inline void SetType(
const std::string& type);
151 std::string m_type{
"Generic"};
152 std::string m_rr_endpoint{
""};
153 std::string m_ps_endpoint{
""};
154 bool m_access{
false};
162 class Config :
public ifw::core::utils::bat::Config {
186 void LoadConfig(
const std::string& filename =
"",
bool reset =
false)
override;
252 std::optional<std::vector<std::string>>
GetObSubsystems(
const std::string& mode)
const;
262 virtual void GetConfigList(ifw::core::utils::bat::DbVector& cfg_list)
override;
270 int m_num_subsystems{0};
271 int m_num_op_modes{0};
272 int m_num_ob_modes{0};
274 std::map<std::string, SubsystemConfig> m_subsys_map;
virtual void GetConfigList(ifw::core::utils::bat::DbVector &cfg_list) override
Get configuration list.
Definition config.cpp:322
bool GetSubsysAccess(const std::string &name)
GetSubsysAccess.
Definition config.cpp:241
int GetNumObModes() const
Definition config.cpp:172
int GetNumSubsystems() const
Definition config.cpp:158
const std::string GetSubsysRrEndpoint(const std::string &name)
Returs subsystem req/reply endpoint.
Definition config.cpp:286
std::optional< std::vector< std::string > > GetObSubsystems(const std::string &mode) const
Definition config.cpp:191
const std::string GetSubsysType(const std::string &name)
Returs subsystem type.
Definition config.cpp:270
int GetNumOpModes() const
The number of defined operational modes.
Definition config.cpp:166
const std::string GetSubsysPsEndpoint(const std::string &name)
Returs subsystem pub/sub endpoint.
Definition config.cpp:304
std::string GetSubsysScopeStr(const std::string &name)
GetSubsysScopeStr.
Definition config.cpp:226
void SetSubsysAccess(const std::string &name, const bool &access)
Definition config.cpp:257
Config()
Definition config.cpp:31
std::optional< ScopeEnum > GetSubsysScope(const std::string &name)
GetSubsysScope.
Definition config.cpp:206
void LoadConfig(const std::string &filename="", bool reset=false) override
Definition config.cpp:39
const std::string GetSubsysName(const int &subsys_index)
Returns a given subsystem name.
Definition config.cpp:179
virtual ~Config()
Definition config.cpp:35
ActionMgr class source file.
Definition actionMgr.cpp:30
constexpr auto KEY_CONFIG_OB_MODES
Definition config.hpp:29
const std::map< std::string, ScopeEnum > ScopeMap
Definition config.hpp:48
constexpr auto CONFIG_ENVVAR_DBHOST
Definition config.hpp:56
constexpr auto KEY_CONFIG_SUBSYS_TYPE
Definition config.hpp:37
constexpr auto KEY_CONFIG_SUBSYS_NAME
Definition config.hpp:32
constexpr auto KEY_CONFIG_SUBSYS_ACCESS
Definition config.hpp:34
constexpr auto KEY_CONTROL_ESTIMATED_STATE
Definition config.hpp:26
constexpr auto KEY_CONFIG_OP_MODES
Definition config.hpp:30
constexpr auto KEY_CONTROL_ESTIMATED_SUBSTATE
Definition config.hpp:27
ScopeEnum
Definition config.hpp:45
@ INTERNAL
Definition config.hpp:46
@ EXTERNAL
Definition config.hpp:45
constexpr auto KEY_CONFIG_SUBSYS
Definition config.hpp:28
constexpr auto KEY_CONFIG_SUBSYS_SCOPE
Definition config.hpp:33
constexpr auto KEY_CONFIG_SUBSYS_PS_ENDPOINT
Definition config.hpp:36
constexpr auto KEY_CONFIG_SUBSYS_RR_ENDPOINT
Definition config.hpp:35
std::optional< ScopeEnum > GetScope(const std::string &scope_str) const
Get associated subsystem scope.
void SetRrEndPoint(const std::string &rr_endpoint)
Set subsystem Req/Rep end point.
void SetAccess(const bool &access)
Set subsystem access flag.
std::string GetType() const
Get actual subsystem type.
bool GetAccess() const
Get actual saccess flag.
ScopeEnum GetScope() const
Get actual subsystem scope.
std::string GetRrEndPoint() const
Get actual subsystem Req/Rep end point.
int GetIndex() const
Get index.
void SetIndex(const int &index)
Set subsystem access flag.
void SetType(const std::string &type)
Set subsystem type.
void SetPsEndPoint(const std::string &ps_endpoint)
Set subsystem Pub/Sub end point.
std::string GetPsEndPoint() const
Get actual subsystem Pub/Sub end point.
void SetScope(const ScopeEnum &scope)
Set subsystem scope.