ifw-sup 5.0.0
Loading...
Searching...
No Matches
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
23
24 class Config;
25
26
33 class Generic : public Subsys::Registrar<Generic> {
34 public:
41 Generic(const std::string name,
42 Config& config,
43 DataContext& data_ctx);
44
48 virtual ~Generic();
49
55 virtual bool IsNotReady() const override;
61 virtual bool IsReady() const override;
62
68 virtual bool IsOperational() const override;
69
75 virtual void CheckSubsysFailure() const override;
76
82 virtual bool IsDisabling() const override;
83
84 virtual std::optional<elt::mal::future<void>> Connect() override;
85
86 virtual void Close() override;
92 virtual elt::mal::future<std::string> Init() override;
93
99 virtual elt::mal::future<std::string> Enable() override;
100
106 virtual elt::mal::future<std::string> Disable() override;
107
113 virtual elt::mal::future<std::string> Stop() override;
114
115 virtual elt::mal::future<std::string> GetState() override;
116
117 virtual elt::mal::future<std::string> GetStatus() override;
118
119 virtual elt::mal::future<std::string> GetVersion() override;
120
126 virtual elt::mal::future<std::string> Reset() override;
127
128
136 virtual void Ignore(rad::AnyEvent const& last_event) override;
137
145 virtual void StopIgn(rad::AnyEvent const& last_event) override;
146
154 virtual void SubsysReset(rad::AnyEvent const& last_event) override;
155
163 virtual void SubsysInit(rad::AnyEvent const& last_event) override;
164
172 virtual void SubsysEnable(rad::AnyEvent const& last_event) override;
173
181 virtual void SubsysDisable(rad::AnyEvent const& last_event) override;
182
190 virtual void Setup(const std::any& payload) override;
191
196 virtual void Status(const std::string& payload, std::string& buffer) override;
197
202 virtual std::string GetName() const override;
203
208 std::string GetPrefixName() const;
209
214 std::string GetScopeStr() const;
215
220 bool GetAccess() const;
221
222 void SetAccess(const bool& access);
223
224
225 protected:
226
233 bool IsMsgForMe(const std::string& id) const;
234
240 void UpdateDb(std::vector<std::string> attr_vector);
241
246 void UpdateConfig() override;
247
252 void SetIgnore(bool flag);
253
254
260 void GetPrefix(const std::vector<std::string> prefix_list, std::string& prefix);
261
269 bool CheckNameParam(const std::any& payload);
270
271 protected:
275 void StartSubscription() override;
276
280 void StopSubscription();
281
282
283 public:
284 std::atomic<bool> m_initiated_connection {false};
285
286 protected:
287 std::string m_name;
291
292 elt::mal::rr::ListenerRegistration m_connection_listener;
293 std::unique_ptr<rad::cii::Subscriber<stdif::Status>> m_subscriber;
294
295
296 private:
297 log4cplus::Logger m_logger;
298
299 };
300
301}
302
303
304#endif //SUP_SYSSUP_COMMON_GENERIC_HPP
Definition config.hpp:162
Definition dataContext.hpp:67
Definition subsys.hpp:105
Definition generic.hpp:33
virtual void Ignore(rad::AnyEvent const &last_event) override
Executes a Ignore.
Definition generic.cpp:152
virtual ~Generic()
Default destructor.
Definition generic.cpp:39
void UpdateConfig() override
Update subsystem configuration.
Definition generic.cpp:240
virtual void CheckSubsysFailure() const override
Check if subsys is in failure state.
Definition generic.cpp:222
virtual elt::mal::future< std::string > Enable() override
Executes a Enable command.
Definition generic.cpp:90
virtual void SubsysReset(rad::AnyEvent const &last_event) override
Executes a hardware reset command.
Definition generic.cpp:160
virtual bool IsDisabling() const override
Check if subsys is disablig.
Definition generic.cpp:228
virtual void Close() override
Definition generic.cpp:73
void StartSubscription() override
Start subscription of subsystem status.
Definition generic.cpp:326
std::string GetPrefixName() const
Get subsystem name for logging purposes.
Definition generic.cpp:283
virtual elt::mal::future< std::string > GetVersion() override
Definition generic.cpp:134
bool IsMsgForMe(const std::string &id) const
Check if received message id is addressed to me.
Definition generic.cpp:267
virtual elt::mal::future< std::string > Disable() override
Executes a Disable command.
Definition generic.cpp:98
virtual void SubsysEnable(rad::AnyEvent const &last_event) override
Executes a hardware enable command.
Definition generic.cpp:168
void StopSubscription()
Start subscription of subsystem status.
Definition generic.cpp:380
virtual elt::mal::future< std::string > Reset() override
Executes a Reset command.
Definition generic.cpp:142
virtual bool IsOperational() const override
Check if subsys is Operational.
Definition generic.cpp:186
void SetAccess(const bool &access)
Definition generic.cpp:299
virtual void Setup(const std::any &payload) override
Executes a run time configuration.
Definition generic.cpp:387
void SetIgnore(bool flag)
SetIgnore.
Definition generic.cpp:258
bool GetAccess() const
Get subsystem access flag.
Definition generic.cpp:294
virtual std::string GetName() const override
Get subsystem name.
Definition generic.cpp:278
std::string m_name
name of the subsystem
Definition generic.hpp:287
void GetPrefix(const std::vector< std::string > prefix_list, std::string &prefix)
Get prefix for writing attributes to the DB.
Definition generic.cpp:263
Generic(const std::string name, Config &config, DataContext &data_ctx)
Subsys abstract class constructor.
Definition generic.cpp:29
virtual elt::mal::future< std::string > Stop() override
Executes a Stop command.
Definition generic.cpp:106
virtual std::optional< elt::mal::future< void > > Connect() override
Definition generic.cpp:42
std::atomic< bool > m_initiated_connection
Definition generic.hpp:284
Dispatcher< stdif::StdCmdsAsync > m_dispatcher
Definition generic.hpp:290
DataContext & m_data_ctx
reference to the data context object.
Definition generic.hpp:289
virtual elt::mal::future< std::string > GetState() override
Definition generic.cpp:114
virtual void SubsysInit(rad::AnyEvent const &last_event) override
Executes a hardware init command.
Definition generic.cpp:164
virtual bool IsReady() const override
Check if subsys is Standby/Ready.
Definition generic.cpp:181
virtual void Status(const std::string &payload, std::string &buffer) override
Get subsystem status.
Definition generic.cpp:191
virtual bool IsNotReady() const override
Check if subsys is Standby/NotReady.
Definition generic.cpp:176
Config & m_config
reference to the config object.
Definition generic.hpp:288
virtual elt::mal::future< std::string > Init() override
Executes a Init command.
Definition generic.cpp:82
bool CheckNameParam(const std::any &payload)
Determine whether paramater is included (subsys name).
Definition generic.cpp:303
virtual void StopIgn(rad::AnyEvent const &last_event) override
Executes a StopIgn.
Definition generic.cpp:156
elt::mal::rr::ListenerRegistration m_connection_listener
Definition generic.hpp:292
std::string GetScopeStr() const
Get subsystem scope as string.
Definition generic.cpp:289
void UpdateDb(std::vector< std::string > attr_vector)
Update subsys database.
Definition generic.cpp:236
virtual void SubsysDisable(rad::AnyEvent const &last_event) override
Executes a hardware disable command.
Definition generic.cpp:172
virtual elt::mal::future< std::string > GetStatus() override
Definition generic.cpp:124
std::unique_ptr< rad::cii::Subscriber< stdif::Status > > m_subscriber
Definition generic.hpp:293
ActionsInit class source file.
Definition actionMgr.cpp:32
SubsysFactory class header file.
Subsys class header file.
DataContext class header file.