8#ifndef SUP_SYSSUP_COMMON_GENERIC_HPP
9#define SUP_SYSSUP_COMMON_GENERIC_HPP
11#include <rad/mal/requestor.hpp>
12#include <rad/mal/subscriber.hpp>
32 class Generic :
public Subsys::Registrar<Generic> {
60 virtual bool IsReady()
const override;
83 virtual std::optional<elt::mal::future<void>>
Connect()
override;
85 virtual void Close()
override;
91 virtual elt::mal::future<std::string>
Init()
override;
98 virtual elt::mal::future<std::string>
Enable()
override;
105 virtual elt::mal::future<std::string>
Disable()
override;
112 virtual elt::mal::future<std::string>
Stop()
override;
114 virtual elt::mal::future<std::string>
GetState()
override;
116 virtual elt::mal::future<std::string>
GetStatus()
override;
118 virtual elt::mal::future<std::string>
GetVersion()
override;
125 virtual elt::mal::future<std::string>
Reset()
override;
135 virtual void Ignore(rad::AnyEvent
const& last_event)
override;
144 virtual void StopIgn(rad::AnyEvent
const& last_event)
override;
153 virtual void SubsysReset(rad::AnyEvent
const& last_event)
override;
162 virtual void SubsysInit(rad::AnyEvent
const& last_event)
override;
171 virtual void SubsysEnable(rad::AnyEvent
const& last_event)
override;
180 virtual void SubsysDisable(rad::AnyEvent
const& last_event)
override;
189 virtual void Setup(
const std::any& payload)
override;
195 virtual void Status(
const std::string& payload, std::string& buffer)
override;
201 virtual std::string
GetName()
const override;
239 void UpdateDb(std::vector<std::string> attr_vector);
259 void GetPrefix(
const std::vector<std::string> prefix_list, std::string& prefix);
296 log4cplus::Logger m_logger;
Definition config.hpp:162
Definition dataContext.hpp:66
Definition subsys.hpp:104
virtual void Ignore(rad::AnyEvent const &last_event) override
Executes a Ignore.
Definition generic.cpp:186
virtual ~Generic()
Default destructor.
Definition generic.cpp:38
void UpdateConfig() override
Update subsystem configuration.
Definition generic.cpp:274
virtual void CheckSubsysFailure() const override
Check if subsys is in failure state.
Definition generic.cpp:256
virtual elt::mal::future< std::string > Enable() override
Executes a Enable command.
Definition generic.cpp:94
virtual void SubsysReset(rad::AnyEvent const &last_event) override
Executes a hardware reset command.
Definition generic.cpp:194
virtual bool IsDisabling() const override
Check if subsys is disablig.
Definition generic.cpp:262
virtual void Close() override
Definition generic.cpp:72
void StartSubscription() override
Start subscription of subsystem status.
Definition generic.cpp:361
std::string GetPrefixName() const
Get subsystem name for logging purposes.
Definition generic.cpp:318
virtual elt::mal::future< std::string > GetVersion() override
Definition generic.cpp:159
bool IsMsgForMe(const std::string &id) const
Check if received message id is addressed to me.
Definition generic.cpp:302
virtual elt::mal::future< std::string > Disable() override
Executes a Disable command.
Definition generic.cpp:107
virtual void SubsysEnable(rad::AnyEvent const &last_event) override
Executes a hardware enable command.
Definition generic.cpp:202
void StopSubscription()
Start subscription of subsystem status.
Definition generic.cpp:419
virtual elt::mal::future< std::string > Reset() override
Executes a Reset command.
Definition generic.cpp:172
virtual bool IsOperational() const override
Check if subsys is Operational.
Definition generic.cpp:220
void SetAccess(const bool &access)
Definition generic.cpp:334
virtual void Setup(const std::any &payload) override
Executes a run time configuration.
Definition generic.cpp:426
void SetIgnore(bool flag)
SetIgnore.
Definition generic.cpp:293
bool GetAccess() const
Get subsystem access flag.
Definition generic.cpp:329
virtual std::string GetName() const override
Get subsystem name.
Definition generic.cpp:313
std::string m_name
name of the subsystem
Definition generic.hpp:286
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix)
Get prefix for writing attributes to the DB.
Definition generic.cpp:298
Generic(const std::string name, Config &config, DataContext &data_ctx)
Subsys abstract class constructor.
Definition generic.cpp:28
virtual elt::mal::future< std::string > Stop() override
Executes a Stop command.
Definition generic.cpp:120
virtual std::optional< elt::mal::future< void > > Connect() override
Definition generic.cpp:41
std::atomic< bool > m_initiated_connection
Definition generic.hpp:283
Dispatcher< stdif::StdCmdsAsync > m_dispatcher
Definition generic.hpp:289
DataContext & m_data_ctx
reference to the data context object.
Definition generic.hpp:288
virtual elt::mal::future< std::string > GetState() override
Definition generic.cpp:133
virtual void SubsysInit(rad::AnyEvent const &last_event) override
Executes a hardware init command.
Definition generic.cpp:198
virtual bool IsReady() const override
Check if subsys is Standby/Ready.
Definition generic.cpp:215
virtual void Status(const std::string &payload, std::string &buffer) override
Get subsystem status.
Definition generic.cpp:225
virtual bool IsNotReady() const override
Check if subsys is Standby/NotReady.
Definition generic.cpp:210
Config & m_config
reference to the config object.
Definition generic.hpp:287
virtual elt::mal::future< std::string > Init() override
Executes a Init command.
Definition generic.cpp:81
bool CheckNameParam(const std::any &payload)
Determine whether paramater is included (subsys name).
Definition generic.cpp:338
virtual void StopIgn(rad::AnyEvent const &last_event) override
Executes a StopIgn.
Definition generic.cpp:190
elt::mal::rr::ListenerRegistration m_connection_listener
Definition generic.hpp:291
std::string GetScopeStr() const
Get subsystem scope as string.
Definition generic.cpp:324
void UpdateDb(std::vector< std::string > attr_vector)
Update subsys database.
Definition generic.cpp:270
virtual void SubsysDisable(rad::AnyEvent const &last_event) override
Executes a hardware disable command.
Definition generic.cpp:206
virtual elt::mal::future< std::string > GetStatus() override
Definition generic.cpp:146
std::unique_ptr< rad::cii::Subscriber< stdif::Status > > m_subscriber
Definition generic.hpp:292
ActionMgr class source file.
Definition actionMgr.cpp:30