Go to the documentation of this file.
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>
20 #include <mal/utility/LoadMal.hpp>
21 #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/1000) {
120 m_client = elt::mal::CiiFactory::getInstance().getClient<INTERFACE>(
122 {std::make_shared<elt::mal::rr::qos::ReplyTime>(std::chrono::seconds(m_timeout))},
123 mal_properties ? *mal_properties : elt::mal::Mal::Properties());
124 }
catch (std::exception& e) {
125 RAD_LOG_ERROR() <<
"Problems creating MAL client "
126 <<
" error: " << e.what();
133 const int timeout = 5000,
134 const std::optional<elt::mal::Mal::Properties> mal_properties = {}) {
136 m_timeout = timeout/1000;
137 m_client = elt::mal::CiiFactory::getInstance().getClient<INTERFACE>(
139 {std::make_shared<elt::mal::rr::qos::ReplyTime>(std::chrono::seconds(m_timeout))},
140 mal_properties ? *mal_properties : elt::mal::Mal::Properties());
141 }
catch (std::exception& e) {
142 RAD_LOG_ERROR() <<
"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);
387 #include "subsys.ipp"
389 #endif //SUP_SYSSUP_COMMON_SUBSYS_HPP
virtual void CheckSubsysFailure() const
Check if subsys is in failure state.
Definition: subsys.cpp:136
void Subscribe(UpdateHandler::slot_type handler)
Implements a notification for updates in the subsystem status.
Definition: subsys.cpp:213
virtual void SubsysEnable(rad::AnyEvent const &last_event)
Executes a hardware enable command.
Definition: subsys.cpp:105
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix)
Get prefix for writing attributes to the DB.
Definition: subsys.cpp:163
Dispatcher(const Dispatcher &)=delete
Definition: dataContext.hpp:34
virtual void SubsysInit(rad::AnyEvent const &last_event)
Executes a hardware init command.
Definition: subsys.cpp:98
Definition: config.hpp:137
boost::signals2::signal< void()> UpdateHandler
Definition: subsys.hpp:181
Definition: subsysFactory.hpp:34
SubsysFactory class header file.
std::string GetConnectionStr() const
GetConnectionStr.
The SubsysData struct.
Definition: subsys.hpp:39
void SetSubstate(const std::string subtate)
SetSubstate.
Subsys interface class header file.
virtual void SubsysReset(rad::AnyEvent const &last_event)
Executes a hardware reset command.
Definition: subsys.cpp:91
virtual ~Subsys()
Default destructor.
Definition: subsys.cpp:33
ConnectionEnum m_connection
connection status
Definition: subsys.hpp:95
Definition: actionMgr.cpp:33
virtual bool IsReady() const
Check if subsys is Standby/Ready.
Definition: subsys.cpp:124
ConnectionEnum GetConnection() const
GetConnection.
std::string GetDataConnectionStr() const
Get actual connection as string.
Definition: subsys.cpp:188
const std::map< ConnectionEnum, std::string > ConnectionMap
Definition: subsys.hpp:46
void SetIgnore(bool flag)
SetIgnore.
Definition: subsys.cpp:155
Dispatcher(const elt::mal::Uri &uri, const int timeout=5000, const std::optional< elt::mal::Mal::Properties > mal_properties={})
Definition: subsys.hpp:115
void Update(const elt::mal::Uri &uri, const int timeout=5000, const std::optional< elt::mal::Mal::Properties > mal_properties={})
Definition: subsys.hpp:132
SubsysData::ConnectionEnum GetDataConnection() const
Get actual connection as enumeration.
Definition: subsys.cpp:208
State::StateEnum m_state
actual state
Definition: subsys.hpp:96
State::SubstateEnum GetDataSubstate() const
Get actual subtate as a enumeration.
Definition: subsys.cpp:179
void SetDataState(const std::string state)
Set actual subsystem state.
Definition: subsys.cpp:193
Definition: iSubsys.hpp:32
UpdateHandler m_signal
notification signal.
Definition: subsys.hpp:380
SubsysData m_status
object storing actual subsystem data.
Definition: subsys.hpp:379
Definition: subsys.hpp:105
Subsys(Key)
Subsys abstract class constructor.
Definition: subsys.cpp:28
void UpdateDb(std::vector< std::string > attr_vector)
Update subsys database.
Definition: subsys.cpp:150
void SetDataSubstate(const std::string subtate)
Set actual subsystem substate.
Definition: subsys.cpp:198
std::string GetDataStateStr() const
Get actual state as string.
Definition: subsys.cpp:173
std::shared_ptr< INTERFACE > & GetInterface()
Definition: subsys.hpp:154
virtual bool IsOperational() const
Check if subsys is Operational.
Definition: subsys.cpp:130
void SetState(const std::string state)
SetState.
ConnectionEnum
Definition: subsys.hpp:42
StateEnum
Definition: states.hpp:55
virtual void SubsysDisable(rad::AnyEvent const &last_event)
Executes a hardware disable command.
Definition: subsys.cpp:112
virtual bool IsDisabling() const
Check if subsys is disablig.
Definition: subsys.cpp:142
virtual void StopIgn(rad::AnyEvent const &last_event)
Executes a StopIgn.
Definition: subsys.cpp:84
virtual void Ignore(rad::AnyEvent const &last_event)
Executes a Ignore.
Definition: subsys.cpp:77
Dispatcher & operator=(const Dispatcher &)=delete
State::StateEnum GetDataState() const
Get actual state as a enumeration.
Definition: subsys.cpp:170
State::SubstateEnum m_substate
actual substate
Definition: subsys.hpp:97
Definition: subsys.hpp:178
SubstateEnum
Definition: states.hpp:61
constexpr auto KEY_STATUS_SUBSYS_CONNECTION
Definition: subsys.hpp:27
State::SubstateEnum GetSubstate() const
GetSubstate.
virtual bool IsNotReady() const
Check if subsys is Standby/NotReady.
Definition: subsys.cpp:118
void SetDataConnection(const SubsysData::ConnectionEnum connection)
Set actual connection state.
Definition: subsys.cpp:203
State::StateEnum GetState() const
GetState.
std::string GetDataSubstateStr() const
Get actual subtate as string.
Definition: subsys.cpp:183
void SetConnection(const SubsysData::ConnectionEnum connection)
SetConnection.