ifw-ccf  3.0.0-pre2
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 <ccf/control/recCmds.rad.hpp>
12 
13 namespace ccf::control {
14 
16 class 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 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 > > RecPause() override
Definition: recCmdsImpl.hpp:36
virtual elt::mal::future< std::string > RecAbort() override
Definition: recCmdsImpl.hpp:22
virtual elt::mal::future< std::shared_ptr< recif::RecStatus > > RecStop() override
Definition: recCmdsImpl.hpp:59
virtual ~RecCmdsImpl()
Definition: recCmdsImpl.hpp:20
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 > > RecContinue() override
Definition: recCmdsImpl.hpp:29
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
Definition: acqThread.cpp:10
log4cplus::Logger & Logger()
Definition: base.cpp:9