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