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