9#ifndef SUP_SYSSUP_COMMON_SUBSYS_HPP
10#define SUP_SYSSUP_COMMON_SUBSYS_HPP
12#include <boost/signals2.hpp>
13#include <boost/bimap.hpp>
14#include <boost/assign.hpp>
19#include <ifw/core/utils/bat/logger.hpp>
22#include <mal/utility/LoadMal.hpp>
23#include <mal/rr/qos/ReplyTime.hpp>
104 template <
typename INTERFACE>
116 const int timeout = 5000,
117 const std::optional<elt::mal::Mal::Properties> mal_properties = {})
118 : m_client(), m_uri(uri), m_timeout(timeout) {
120 m_client = elt::mal::CiiFactory::getInstance().getClient<INTERFACE>(
122 {std::make_shared<elt::mal::rr::qos::ReplyTime>(std::chrono::milliseconds(m_timeout))},
123 mal_properties ? *mal_properties : elt::mal::Mal::Properties());
124 }
catch (std::exception& e) {
125 LOG4CPLUS_ERROR(ifw::core::utils::bat::GetAppLogger(),
"Problems creating MAL client "
126 <<
" error: " << e.what());
133 const int timeout = 5000,
134 const std::optional<elt::mal::Mal::Properties> mal_properties = {}) {
137 m_client = elt::mal::CiiFactory::getInstance().getClient<INTERFACE>(
139 {std::make_shared<elt::mal::rr::qos::ReplyTime>(std::chrono::milliseconds(m_timeout))},
140 mal_properties ? *mal_properties : elt::mal::Mal::Properties());
141 }
catch (std::exception& e) {
142 LOG4CPLUS_ERROR(ifw::core::utils::bat::GetAppLogger(),
"Problems creating MAL client "
143 <<
" error: " << e.what());
163 std::shared_ptr<INTERFACE> m_client;
237 virtual void Ignore(rad::AnyEvent
const& last_event) ;
246 virtual void StopIgn(rad::AnyEvent
const& last_event) ;
255 virtual void SubsysReset(rad::AnyEvent
const& last_event) ;
264 virtual void SubsysInit(rad::AnyEvent
const& last_event) ;
273 virtual void SubsysEnable(rad::AnyEvent
const& last_event) ;
282 virtual void SubsysDisable(rad::AnyEvent
const& last_event) ;
288 void Subscribe(UpdateHandler::slot_type handler);
359 void UpdateDb(std::vector<std::string> attr_vector);
374 void GetPrefix(
const std::vector<std::string> prefix_list, std::string& prefix);
383 log4cplus::Logger m_logger;
Definition config.hpp:162
Definition dataContext.hpp:67
Definition subsys.hpp:105
Dispatcher(const elt::mal::Uri &uri, const int timeout=5000, const std::optional< elt::mal::Mal::Properties > mal_properties={})
Definition subsys.hpp:115
Dispatcher & operator=(const Dispatcher &)=delete
Dispatcher(const Dispatcher &)=delete
std::shared_ptr< INTERFACE > & GetInterface()
Definition subsys.hpp:154
void Update(const elt::mal::Uri &uri, const int timeout=5000, const std::optional< elt::mal::Mal::Properties > mal_properties={})
Definition subsys.hpp:132
Definition subsysFactory.hpp:34
Definition iSubsys.hpp:28
Subsys interface class header file.
ActionsInit class source file.
Definition actionMgr.cpp:32
constexpr auto KEY_STATUS_SUBSYS_CONNECTION
Definition subsys.hpp:28
StateEnum
Definition states.hpp:58
SubstateEnum
Definition states.hpp:64
The SubsysData struct.
Definition subsys.hpp:39
State::SubstateEnum GetSubstate() const
GetSubstate.
void SetState(const std::string state)
SetState.
ConnectionEnum
Definition subsys.hpp:42
std::string GetConnectionStr() const
GetConnectionStr.
void SetConnection(const SubsysData::ConnectionEnum connection)
SetConnection.
const std::map< ConnectionEnum, std::string > ConnectionMap
Definition subsys.hpp:46
void SetSubstate(const std::string subtate)
SetSubstate.
State::StateEnum GetState() const
GetState.
ConnectionEnum GetConnection() const
GetConnection.
Definition subsys.hpp:178
virtual void SubsysEnable(rad::AnyEvent const &last_event)
Executes a hardware enable command.
Definition subsys.cpp:81
void SetIgnore(bool flag)
SetIgnore.
Definition subsys.cpp:116
std::string GetDataSubstateStr() const
Get actual subtate as string.
Definition subsys.cpp:136
virtual bool IsOperational() const
Check if subsys is Operational.
Definition subsys.cpp:99
State::StateEnum GetDataState() const
Get actual state as a enumeration.
Definition subsys.cpp:124
std::string GetDataConnectionStr() const
Get actual connection as string.
Definition subsys.cpp:140
virtual ~Subsys()
Default destructor.
Definition subsys.cpp:23
boost::signals2::signal< void()> UpdateHandler
Definition subsys.hpp:181
virtual void SubsysDisable(rad::AnyEvent const &last_event)
Executes a hardware disable command.
Definition subsys.cpp:85
virtual bool IsNotReady() const
Check if subsys is Standby/NotReady.
Definition subsys.cpp:89
virtual void Ignore(rad::AnyEvent const &last_event)
Executes a Ignore.
Definition subsys.cpp:65
void SetDataState(const std::string state)
Set actual subsystem state.
Definition subsys.cpp:144
virtual void StopIgn(rad::AnyEvent const &last_event)
Executes a StopIgn.
Definition subsys.cpp:69
virtual bool IsReady() const
Check if subsys is Standby/Ready.
Definition subsys.cpp:94
void Subscribe(UpdateHandler::slot_type handler)
Implements a notification for updates in the subsystem status.
Definition subsys.cpp:160
void UpdateDb(std::vector< std::string > attr_vector)
Update subsys database.
Definition subsys.cpp:113
State::SubstateEnum GetDataSubstate() const
Get actual subtate as a enumeration.
Definition subsys.cpp:132
UpdateHandler m_signal
notification signal.
Definition subsys.hpp:378
std::string GetDataStateStr() const
Get actual state as string.
Definition subsys.cpp:128
Subsys(Key)
Subsys abstract class constructor.
Definition subsys.cpp:20
SubsysData::ConnectionEnum GetDataConnection() const
Get actual connection as enumeration.
Definition subsys.cpp:156
virtual void CheckSubsysFailure() const
Check if subsys is in failure state.
Definition subsys.cpp:104
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix)
Get prefix for writing attributes to the DB.
Definition subsys.cpp:120
void SetDataConnection(const SubsysData::ConnectionEnum connection)
Set actual connection state.
Definition subsys.cpp:152
virtual void SubsysReset(rad::AnyEvent const &last_event)
Executes a hardware reset command.
Definition subsys.cpp:73
void SetDataSubstate(const std::string subtate)
Set actual subsystem substate.
Definition subsys.cpp:148
virtual bool IsDisabling() const
Check if subsys is disablig.
Definition subsys.cpp:108
virtual void SubsysInit(rad::AnyEvent const &last_event)
Executes a hardware init command.
Definition subsys.cpp:77
SubsysFactory class header file.