ifw-sup 5.1.0
 
Loading...
Searching...
No Matches
generic.hpp
Go to the documentation of this file.
1
7
8#ifndef SUP_SYSSUP_COMMON_GENERIC_HPP
9#define SUP_SYSSUP_COMMON_GENERIC_HPP
10
11#include <rad/mal/requestor.hpp>
12#include <rad/mal/subscriber.hpp>
13
17
18
19#include <Stdif.hpp>
20
22
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;
84
85 virtual void Close() override;
91 virtual elt::mal::future<std::string> Init() override;
92
98 virtual elt::mal::future<std::string> Enable() override;
99
105 virtual elt::mal::future<std::string> Disable() override;
106
112 virtual elt::mal::future<std::string> Stop() override;
113
114 virtual elt::mal::future<std::string> GetState() override;
115
116 virtual elt::mal::future<std::string> GetStatus() override;
117
118 virtual elt::mal::future<std::string> GetVersion() override;
119
125 virtual elt::mal::future<std::string> Reset() override;
126
127
135 virtual void Ignore(rad::AnyEvent const& last_event) override;
136
144 virtual void StopIgn(rad::AnyEvent const& last_event) override;
145
153 virtual void SubsysReset(rad::AnyEvent const& last_event) override;
154
162 virtual void SubsysInit(rad::AnyEvent const& last_event) override;
163
171 virtual void SubsysEnable(rad::AnyEvent const& last_event) override;
172
180 virtual void SubsysDisable(rad::AnyEvent const& last_event) override;
181
189 virtual void Setup(const std::any& payload) override;
190
195 virtual void Status(const std::string& payload, std::string& buffer) override;
196
201 virtual std::string GetName() const override;
202
207 std::string GetPrefixName() const;
208
213 std::string GetScopeStr() const;
214
219 bool GetAccess() const;
220
221 void SetAccess(const bool& access);
222
223
224 protected:
225
232 bool IsMsgForMe(const std::string& id) const;
233
239 void UpdateDb(std::vector<std::string> attr_vector);
240
245 void UpdateConfig() override;
246
251 void SetIgnore(bool flag);
252
253
259 void GetPrefix(const std::vector<std::string> prefix_list, std::string& prefix);
260
268 bool CheckNameParam(const std::any& payload);
269
270 protected:
274 void StartSubscription() override;
275
279 void StopSubscription();
280
281
282 public:
283 std::atomic<bool> m_initiated_connection {false};
284
285 protected:
286 std::string m_name;
290
291 elt::mal::rr::ListenerRegistration m_connection_listener;
292 std::unique_ptr<rad::cii::Subscriber<stdif::Status>> m_subscriber;
293
294
295 private:
296 log4cplus::Logger m_logger;
297
298 };
299
300}
301
302
303#endif //SUP_SYSSUP_COMMON_GENERIC_HPP
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