ifw-ccf  3.0.0-pre2
dcsCmdsImpl.hpp
Go to the documentation of this file.
1 
5 #ifndef CONTROL_DCSCMDSIMPL_HPP_
6 #define CONTROL_DCSCMDSIMPL_HPP_
7 
8 #include <rad/exceptions.hpp>
9 #include <rad/smAdapter.hpp>
10 
11 #include <ccf/control/dcsCmds.rad.hpp>
12 
13 namespace ccf::control {
14 
16 class DcsCmdsImpl: public dcsif::AsyncDcsCmds {
17  public:
18  explicit DcsCmdsImpl(rad::SMAdapter& sm): m_sm(sm) { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
19 
20  virtual ~DcsCmdsImpl() { LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__); }
21 
22  virtual elt::mal::future<std::string> Abort() override {
23  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
24  auto ev = std::make_shared<DcsCmds::Abort>();
25  m_sm.PostEvent(ev);
26  return ev->GetPayload().GetReplyFuture();
27  }
28 
29  virtual elt::mal::future<std::string> Execute(
30  const std::shared_ptr<dcsif::Method>& mal_param) override {
31  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
32  auto ev = std::make_shared<DcsCmds::Execute>(mal_param->clone());
33  m_sm.PostEvent(ev);
34  return ev->GetPayload().GetReplyFuture();
35  }
36 
37  virtual elt::mal::future<std::string> GetConfig(
38  const std::string& mal_param) override {
39  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
40  auto ev = std::make_shared<DcsCmds::GetConfig>(mal_param);
41  m_sm.PostEvent(ev);
42  return ev->GetPayload().GetReplyFuture();
43  }
44 
45  virtual elt::mal::future<std::string> GetDiagnostics() override {
46  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
47  auto ev = std::make_shared<DcsCmds::GetDiagnostics>();
48  m_sm.PostEvent(ev);
49  return ev->GetPayload().GetReplyFuture();
50  }
51 
52  virtual elt::mal::future<std::string> GetDpData() override {
53  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
54  auto ev = std::make_shared<DcsCmds::GetDpData>();
55  m_sm.PostEvent(ev);
56  return ev->GetPayload().GetReplyFuture();
57  }
58 
59  virtual elt::mal::future<std::string> GetSetup(
60  const std::string& mal_param) override {
61  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
62  auto ev = std::make_shared<DcsCmds::GetSetup>(mal_param);
63  m_sm.PostEvent(ev);
64  return ev->GetPayload().GetReplyFuture();
65  }
66 
67  virtual elt::mal::future<std::string> Ping() override {
68  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
69  auto ev = std::make_shared<DcsCmds::Ping>();
70  m_sm.PostEvent(ev);
71  return ev->GetPayload().GetReplyFuture();
72  }
73 
74  virtual elt::mal::future<std::string> ReadPars(
75  const std::string& mal_param) override {
76  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
77  auto ev = std::make_shared<DcsCmds::ReadPars>(mal_param);
78  m_sm.PostEvent(ev);
79  return ev->GetPayload().GetReplyFuture();
80  }
81 
82  virtual elt::mal::future<std::string> Recover() override {
83  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
84  auto ev = std::make_shared<DcsCmds::Recover>();
85  m_sm.PostEvent(ev);
86  return ev->GetPayload().GetReplyFuture();
87  }
88 
89  virtual elt::mal::future<std::string> Scan() override {
90  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
91  auto ev = std::make_shared<DcsCmds::Scan>();
92  m_sm.PostEvent(ev);
93  return ev->GetPayload().GetReplyFuture();
94  }
95 
96  virtual elt::mal::future<std::string> SetConfig(
97  const std::string& mal_param) override {
98  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
99  auto ev = std::make_shared<DcsCmds::SetConfig>(mal_param);
100  m_sm.PostEvent(ev);
101  return ev->GetPayload().GetReplyFuture();
102  }
103 
104  virtual elt::mal::future<std::string> Setup(
105  const std::string& mal_param) override {
106  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
107  auto ev = std::make_shared<DcsCmds::Setup>(mal_param);
108  m_sm.PostEvent(ev);
109  return ev->GetPayload().GetReplyFuture();
110  }
111 
112  virtual elt::mal::future<std::string> Start(
113  const std::shared_ptr<dcsif::StartProperties>& mal_param) override {
114  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
115  auto ev = std::make_shared<DcsCmds::Start>(mal_param->clone());
116  m_sm.PostEvent(ev);
117  return ev->GetPayload().GetReplyFuture();
118  }
119 
120  virtual elt::mal::future<std::string> WritePars(
121  const std::string& mal_param) override {
122  LOG4CPLUS_TRACE_METHOD(Logger(), __PRETTY_FUNCTION__);
123  auto ev = std::make_shared<DcsCmds::WritePars>(mal_param);
124  m_sm.PostEvent(ev);
125  return ev->GetPayload().GetReplyFuture();
126  }
127 
128  private:
129  rad::SMAdapter& m_sm;
130 };
131 
132 } // namespace ccf::control
133 
134 #endif // CONTROL_DCSCMDSIMPL_HPP_
Implements the CII/MAL interface.
Definition: dcsCmdsImpl.hpp:16
virtual elt::mal::future< std::string > Abort() override
Definition: dcsCmdsImpl.hpp:22
virtual elt::mal::future< std::string > Start(const std::shared_ptr< dcsif::StartProperties > &mal_param) override
Definition: dcsCmdsImpl.hpp:112
virtual elt::mal::future< std::string > Scan() override
Definition: dcsCmdsImpl.hpp:89
virtual elt::mal::future< std::string > SetConfig(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:96
virtual elt::mal::future< std::string > GetSetup(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:59
virtual elt::mal::future< std::string > GetDiagnostics() override
Definition: dcsCmdsImpl.hpp:45
virtual elt::mal::future< std::string > Ping() override
Definition: dcsCmdsImpl.hpp:67
virtual elt::mal::future< std::string > ReadPars(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:74
virtual elt::mal::future< std::string > GetConfig(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:37
virtual elt::mal::future< std::string > Recover() override
Definition: dcsCmdsImpl.hpp:82
virtual elt::mal::future< std::string > GetDpData() override
Definition: dcsCmdsImpl.hpp:52
virtual elt::mal::future< std::string > Setup(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:104
DcsCmdsImpl(rad::SMAdapter &sm)
Definition: dcsCmdsImpl.hpp:18
virtual elt::mal::future< std::string > WritePars(const std::string &mal_param) override
Definition: dcsCmdsImpl.hpp:120
virtual ~DcsCmdsImpl()
Definition: dcsCmdsImpl.hpp:20
virtual elt::mal::future< std::string > Execute(const std::shared_ptr< dcsif::Method > &mal_param) override
Definition: dcsCmdsImpl.hpp:29
Definition: acqThread.cpp:10
log4cplus::Logger & Logger()
Definition: base.cpp:9