ifw-ccf 5.0.2
Loading...
Searching...
No Matches
recCmdsImpl.hpp
Go to the documentation of this file.
1
5#ifndef CONTROL_RECCMDSIMPL_HPP_
6#define CONTROL_RECCMDSIMPL_HPP_
7
8#include <rad/exceptions.hpp>
9#include <rad/smAdapter.hpp>
10
11#include <ifw/ccf/control/recCmds.rad.hpp>
12
13namespace ifw::ccf::control {
14
16class RecCmdsImpl : public recif::AsyncRecCmds {
17 public:
18 explicit RecCmdsImpl(rad::SMAdapter& sm) : m_sm(sm) { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
19
20 virtual ~RecCmdsImpl() { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
21
22 virtual elt::mal::future<std::string> RecAbort() override {
23 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
24 auto ev = std::make_shared<RecCmds::RecAbort>();
25 m_sm.PostEvent(ev);
26 return ev->GetPayload().GetReplyFuture();
27 }
28
29 virtual elt::mal::future<std::shared_ptr<recif::RecStatus>> RecContinue() override {
30 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
31 auto ev = std::make_shared<RecCmds::RecContinue>();
32 m_sm.PostEvent(ev);
33 return ev->GetPayload().GetReplyFuture();
34 }
35
36 virtual elt::mal::future<std::shared_ptr<recif::RecStatus>> RecPause() override {
37 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
38 auto ev = std::make_shared<RecCmds::RecPause>();
39 m_sm.PostEvent(ev);
40 return ev->GetPayload().GetReplyFuture();
41 }
42
43 virtual elt::mal::future<std::shared_ptr<recif::RecStatus>> RecStart(
44 const std::shared_ptr<recif::RecProperties>& mal_param) override {
45 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
46 auto ev = std::make_shared<RecCmds::RecStart>(mal_param->clone());
47 m_sm.PostEvent(ev);
48 return ev->GetPayload().GetReplyFuture();
49 }
50
51 virtual elt::mal::future<std::shared_ptr<recif::RecStatus>> RecStatus(
52 const std::string& mal_param) override {
53 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
54 auto ev = std::make_shared<RecCmds::RecStatus>(mal_param);
55 m_sm.PostEvent(ev);
56 return ev->GetPayload().GetReplyFuture();
57 }
58
59 virtual elt::mal::future<std::shared_ptr<recif::RecStatus>> RecStop() override {
60 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
61 auto ev = std::make_shared<RecCmds::RecStop>();
62 m_sm.PostEvent(ev);
63 return ev->GetPayload().GetReplyFuture();
64 }
65
66 virtual elt::mal::future<std::shared_ptr<recif::RecWaitStatus>> RecWait(
67 const std::shared_ptr<recif::RecWaitSpec>& mal_param) override {
68 LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
69 auto ev = std::make_shared<RecCmds::RecWait>(mal_param->clone());
70 m_sm.PostEvent(ev);
71 return ev->GetPayload().GetReplyFuture();
72 }
73
74 private:
75 rad::SMAdapter& m_sm;
76};
77
78} // namespace ifw::ccf::control
79
80#endif // CONTROL_RECCMDSIMPL_HPP_
Implements the CII/MAL interface.
Definition recCmdsImpl.hpp:16
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecContinue() override
Definition recCmdsImpl.hpp:29
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecStop() override
Definition recCmdsImpl.hpp:59
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecStatus(const std::string &mal_param) override
Definition recCmdsImpl.hpp:51
virtual elt::mal::future< std::shared_ptr< recif::RecWaitStatus > > RecWait(const std::shared_ptr< recif::RecWaitSpec > &mal_param) override
Definition recCmdsImpl.hpp:66
RecCmdsImpl(rad::SMAdapter &sm)
Definition recCmdsImpl.hpp:18
virtual elt::mal::future< std::string > RecAbort() override
Definition recCmdsImpl.hpp:22
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecStart(const std::shared_ptr< recif::RecProperties > &mal_param) override
Definition recCmdsImpl.hpp:43
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecPause() override
Definition recCmdsImpl.hpp:36
virtual ~RecCmdsImpl()
Definition recCmdsImpl.hpp:20
Definition acqThread.cpp:10
log4cplus::Logger & Logger()
Definition base.cpp:23