ifw-ccf 5.0.2
Loading...
Searching...
No Matches
stdCmdsImpl.hpp
Go to the documentation of this file.
1
5#ifndef CONTROL_STDCMDSIMPL_HPP_
6#define CONTROL_STDCMDSIMPL_HPP_
7
8#include <ifw/ccf/control/stdCmds.rad.hpp>
9
10#include <rad/exceptions.hpp>
11#include <rad/smAdapter.hpp>
12
13namespace ifw::ccf::control {
14
16class StdCmdsImpl: public stdif::AsyncStdCmds {
17 public:
18 explicit StdCmdsImpl(rad::SMAdapter& sm): m_sm(sm) { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
19
20 virtual ~StdCmdsImpl() { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
21
22 virtual elt::mal::future<std::string> Disable() override {
23 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
24 auto ev = std::make_shared<StdCmds::Disable>();
25 m_sm.PostEvent(ev);
26 return ev->GetPayload().GetReplyFuture();
27 }
28
29 virtual elt::mal::future<std::string> Enable() override {
30 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
31 auto ev = std::make_shared<StdCmds::Enable>();
32 m_sm.PostEvent(ev);
33 return ev->GetPayload().GetReplyFuture();
34 }
35
36 virtual elt::mal::future<std::string> Exit() override {
37 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
38 auto ev = std::make_shared<StdCmds::Exit>();
39 m_sm.PostEvent(ev);
40 return ev->GetPayload().GetReplyFuture();
41 }
42
43 virtual elt::mal::future<std::string> GetState() override {
44 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
45 auto ev = std::make_shared<StdCmds::GetState>();
46 m_sm.PostEvent(ev);
47 return ev->GetPayload().GetReplyFuture();
48 }
49
50 virtual elt::mal::future<std::string> GetStatus() override {
51 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
52 auto ev = std::make_shared<StdCmds::GetStatus>();
53 m_sm.PostEvent(ev);
54 return ev->GetPayload().GetReplyFuture();
55 }
56
57 virtual elt::mal::future<std::string> GetVersion() override {
58 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
59 auto ev = std::make_shared<StdCmds::GetVersion>();
60 m_sm.PostEvent(ev);
61 return ev->GetPayload().GetReplyFuture();
62 }
63
64 virtual elt::mal::future<std::string> Init() override {
65 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
66 auto ev = std::make_shared<StdCmds::Init>();
67 m_sm.PostEvent(ev);
68 return ev->GetPayload().GetReplyFuture();
69 }
70
71 virtual elt::mal::future<std::string> Reset() override {
72 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
73 auto ev = std::make_shared<StdCmds::Reset>();
74 m_sm.PostEvent(ev);
75 return ev->GetPayload().GetReplyFuture();
76 }
77
78 virtual elt::mal::future<std::string> SetLogLevel(
79 const std::shared_ptr<stdif::LogInfo>& mal_param) override {
80 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
81 auto ev = std::make_shared<StdCmds::SetLogLevel>(mal_param->clone());
82 m_sm.PostEvent(ev);
83 return ev->GetPayload().GetReplyFuture();
84 }
85
86#ifdef STDIF_VERSION
87# if STDIF_VERSION >= STDIF_MAKE_VERSION(4, 0, 0)
88 elt::mal::future<std::vector<std::shared_ptr<stdif::LogInfo>>>
89 GetLogLevel(const std::string &logger) {
90 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
91 auto ev = std::make_shared<StdCmds::GetLogLevel>(logger);
92 m_sm.PostEvent(ev);
93 return ev->GetPayload().GetReplyFuture();
94 }
95# endif
96#endif
97
98 virtual elt::mal::future<std::string> Stop() override {
99 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
100 auto ev = std::make_shared<StdCmds::Stop>();
101 m_sm.PostEvent(ev);
102 return ev->GetPayload().GetReplyFuture();
103 }
104
105 private:
106 rad::SMAdapter& m_sm;
107};
108
109} // namespace control
110
111#endif // CONTROL_STDCMDSIMPL_HPP_
Implements the CII/MAL interface.
Definition stdCmdsImpl.hpp:16
virtual elt::mal::future< std::string > Disable() override
Definition stdCmdsImpl.hpp:22
StdCmdsImpl(rad::SMAdapter &sm)
Definition stdCmdsImpl.hpp:18
virtual elt::mal::future< std::string > Init() override
Definition stdCmdsImpl.hpp:64
virtual elt::mal::future< std::string > GetStatus() override
Definition stdCmdsImpl.hpp:50
virtual elt::mal::future< std::string > GetVersion() override
Definition stdCmdsImpl.hpp:57
virtual elt::mal::future< std::string > SetLogLevel(const std::shared_ptr< stdif::LogInfo > &mal_param) override
Definition stdCmdsImpl.hpp:78
virtual elt::mal::future< std::string > GetState() override
Definition stdCmdsImpl.hpp:43
virtual elt::mal::future< std::string > Reset() override
Definition stdCmdsImpl.hpp:71
virtual ~StdCmdsImpl()
Definition stdCmdsImpl.hpp:20
virtual elt::mal::future< std::string > Exit() override
Definition stdCmdsImpl.hpp:36
virtual elt::mal::future< std::string > Stop() override
Definition stdCmdsImpl.hpp:98
virtual elt::mal::future< std::string > Enable() override
Definition stdCmdsImpl.hpp:29
Definition acqThread.cpp:10
log4cplus::Logger & Logger()
Definition base.cpp:23