ifw-sup  2.1.0-pre1
generic.hpp
Go to the documentation of this file.
1 
9 #ifndef SUP_SYSSUP_COMMON_GENERIC_HPP
10 #define SUP_SYSSUP_COMMON_GENERIC_HPP
11 
12 #include <rad/mal/requestor.hpp>
13 #include <rad/mal/subscriber.hpp>
14 
18 
19 
20 #include <Stdif.hpp>
21 
22 namespace sup::syssup::common {
23  class Config;
24 
25 
32  class Generic : public Subsys::Registrar<Generic> {
33  public:
40  Generic(const std::string name,
41  Config& config,
42  DataContext& data_ctx);
43 
47  virtual ~Generic();
48 
54  virtual bool IsNotReady() const override;
60  virtual bool IsReady() const override;
61 
67  virtual bool IsOperational() const override;
68 
74  virtual void CheckSubsysFailure() const override;
75 
81  virtual bool IsDisabling() const override;
82 
83  virtual std::optional<elt::mal::future<void>> Connect() override;
89  virtual elt::mal::future<std::string> Init() override;
90 
96  virtual elt::mal::future<std::string> Enable() override;
97 
103  virtual elt::mal::future<std::string> Disable() override;
104 
110  virtual elt::mal::future<std::string> Stop() override;
111 
112  virtual elt::mal::future<std::string> GetState() override;
113 
114  virtual elt::mal::future<std::string> GetStatus() override;
115 
116  virtual elt::mal::future<std::string> GetVersion() override;
117 
123  virtual elt::mal::future<std::string> Reset() override;
124 
125 
133  virtual void Ignore(rad::AnyEvent const& last_event) override;
134 
142  virtual void StopIgn(rad::AnyEvent const& last_event) override;
143 
151  virtual void SubsysReset(rad::AnyEvent const& last_event) override;
152 
160  virtual void SubsysInit(rad::AnyEvent const& last_event) override;
161 
169  virtual void SubsysEnable(rad::AnyEvent const& last_event) override;
170 
178  virtual void SubsysDisable(rad::AnyEvent const& last_event) override;
179 
187  virtual void Setup(const std::any& payload) override;
188 
193  virtual void Status(const std::string& payload, std::string& buffer) override;
194 
199  virtual std::string GetName() const override;
200 
205  std::string GetPrefixName() const;
206 
211  std::string GetScopeStr() const;
212 
217  bool GetAccess() const;
218 
219  void SetAccess(const bool& access);
220 
221 
222  protected:
223 
230  bool IsMsgForMe(const std::string& id) const;
231 
237  void UpdateDb(std::vector<std::string> attr_vector);
238 
243  void UpdateConfig() override;
244 
249  void SetIgnore(bool flag);
250 
251 
257  void GetPrefix(const std::vector<std::string> prefix_list, std::string& prefix);
258 
266  bool CheckNameParam(const std::any& payload);
267 
268  protected:
272  void StartSubscription() override;
273 
277  void StopSubscription();
278 
279 
280 
281  protected:
282  std::string m_name;
286 
287  elt::mal::rr::ListenerRegistration m_connection_listener;
288  std::unique_ptr<rad::cii::Subscriber<stdif::Status>> m_subscriber;
289 
290  private:
291  log4cplus::Logger m_logger;
292 
293  };
294 
295 }
296 
297 
298 #endif //SUP_SYSSUP_COMMON_GENERIC_HPP
sup::syssup::common::Generic::Connect
virtual std::optional< elt::mal::future< void > > Connect() override
Definition: generic.cpp:47
sup::syssup::common::Generic::Setup
virtual void Setup(const std::any &payload) override
Executes a run time configuration.
Definition: generic.cpp:385
sup::syssup::common::Generic::Stop
virtual elt::mal::future< std::string > Stop() override
Executes a Stop command.
Definition: generic.cpp:96
sup::syssup::common::Generic::m_dispatcher
Dispatcher< stdif::StdCmdsAsync > m_dispatcher
Definition: generic.hpp:285
sup::syssup::common::Generic::SubsysInit
virtual void SubsysInit(rad::AnyEvent const &last_event) override
Executes a hardware init command.
Definition: generic.cpp:163
dataContext.hpp
DataContext class header file.
sup::syssup::common::DataContext
Definition: dataContext.hpp:68
sup::syssup::common::Generic::IsDisabling
virtual bool IsDisabling() const override
Check if subsys is disablig.
Definition: generic.cpp:238
sup::syssup::common::Config
Definition: config.hpp:162
sup::syssup::common::Generic::IsNotReady
virtual bool IsNotReady() const override
Check if subsys is Standby/NotReady.
Definition: generic.cpp:183
sup::syssup::common::Generic::GetStatus
virtual elt::mal::future< std::string > GetStatus() override
Definition: generic.cpp:114
sup::syssup::common::Generic::SetIgnore
void SetIgnore(bool flag)
SetIgnore.
Definition: generic.cpp:259
subsys.hpp
Subsys class header file.
sup::syssup::common::Generic::GetPrefixName
std::string GetPrefixName() const
Get subsystem name for logging purposes.
Definition: generic.cpp:290
subsysFactory.hpp
SubsysFactory class header file.
sup::syssup::common::Generic::GetAccess
bool GetAccess() const
Get subsystem access flag.
Definition: generic.cpp:301
sup::syssup::common::Generic::StopSubscription
void StopSubscription()
Start subscription of subsystem status.
Definition: generic.cpp:380
sup::syssup::common::Generic::UpdateConfig
void UpdateConfig() override
Update subsystem configuration.
Definition: generic.cpp:251
sup::syssup::common::Generic::SubsysEnable
virtual void SubsysEnable(rad::AnyEvent const &last_event) override
Executes a hardware enable command.
Definition: generic.cpp:170
sup::syssup::common
Definition: actionMgr.cpp:31
sup::syssup::common::Generic::m_name
std::string m_name
name of the subsystem
Definition: generic.hpp:282
sup::syssup::common::Generic::CheckNameParam
bool CheckNameParam(const std::any &payload)
Determine whether paramater is included (subsys name).
Definition: generic.cpp:311
sup::syssup::common::Generic::Init
virtual elt::mal::future< std::string > Init() override
Executes a Init command.
Definition: generic.cpp:72
sup::syssup::common::Generic::Generic
Generic(const std::string name, Config &config, DataContext &data_ctx)
Subsys abstract class constructor.
Definition: generic.cpp:31
sup::syssup::common::Generic::Reset
virtual elt::mal::future< std::string > Reset() override
Executes a Reset command.
Definition: generic.cpp:132
sup::syssup::common::Generic::UpdateDb
void UpdateDb(std::vector< std::string > attr_vector)
Update subsys database.
Definition: generic.cpp:246
sup::syssup::common::Generic::SubsysReset
virtual void SubsysReset(rad::AnyEvent const &last_event) override
Executes a hardware reset command.
Definition: generic.cpp:156
sup::syssup::common::Generic::CheckSubsysFailure
virtual void CheckSubsysFailure() const override
Check if subsys is in failure state.
Definition: generic.cpp:232
sup::syssup::common::Generic::Ignore
virtual void Ignore(rad::AnyEvent const &last_event) override
Executes a Ignore.
Definition: generic.cpp:142
sup::syssup::common::Generic
Definition: generic.hpp:32
sup::syssup::common::Generic::m_data_ctx
DataContext & m_data_ctx
reference to the data context object.
Definition: generic.hpp:284
sup::syssup::common::Generic::GetState
virtual elt::mal::future< std::string > GetState() override
Definition: generic.cpp:104
sup::syssup::common::Dispatcher< stdif::StdCmdsAsync >
sup::syssup::common::Generic::Enable
virtual elt::mal::future< std::string > Enable() override
Executes a Enable command.
Definition: generic.cpp:80
sup::syssup::common::Generic::GetName
virtual std::string GetName() const override
Get subsystem name.
Definition: generic.cpp:285
sup::syssup::common::Generic::Disable
virtual elt::mal::future< std::string > Disable() override
Executes a Disable command.
Definition: generic.cpp:88
sup::syssup::common::Generic::IsReady
virtual bool IsReady() const override
Check if subsys is Standby/Ready.
Definition: generic.cpp:189
sup::syssup::common::Generic::GetVersion
virtual elt::mal::future< std::string > GetVersion() override
Definition: generic.cpp:124
sup::syssup::common::Generic::Status
virtual void Status(const std::string &payload, std::string &buffer) override
Get subsystem status.
Definition: generic.cpp:201
sup::syssup::common::Generic::SetAccess
void SetAccess(const bool &access)
Definition: generic.cpp:306
sup::syssup::common::Generic::GetScopeStr
std::string GetScopeStr() const
Get subsystem scope as string.
Definition: generic.cpp:296
sup::syssup::common::Generic::m_subscriber
std::unique_ptr< rad::cii::Subscriber< stdif::Status > > m_subscriber
Definition: generic.hpp:288
sup::syssup::common::Generic::m_connection_listener
elt::mal::rr::ListenerRegistration m_connection_listener
Definition: generic.hpp:287
sup::syssup::common::Generic::SubsysDisable
virtual void SubsysDisable(rad::AnyEvent const &last_event) override
Executes a hardware disable command.
Definition: generic.cpp:177
sup::syssup::common::Generic::IsOperational
virtual bool IsOperational() const override
Check if subsys is Operational.
Definition: generic.cpp:195
sup::syssup::common::Generic::StopIgn
virtual void StopIgn(rad::AnyEvent const &last_event) override
Executes a StopIgn.
Definition: generic.cpp:149
sup::syssup::common::Generic::GetPrefix
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix)
Get prefix for writing attributes to the DB.
Definition: generic.cpp:267
sup::syssup::common::Generic::m_config
Config & m_config
reference to the config object.
Definition: generic.hpp:283
sup::syssup::common::Generic::StartSubscription
void StartSubscription() override
Start subscription of subsystem status.
Definition: generic.cpp:334
sup::syssup::common::Generic::~Generic
virtual ~Generic()
Default destructor.
Definition: generic.cpp:42
sup::syssup::common::Generic::IsMsgForMe
bool IsMsgForMe(const std::string &id) const
Check if received message id is addressed to me.
Definition: generic.cpp:274