rad  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
stdCmdsImpl.hpp
Go to the documentation of this file.
1 
9 #ifndef EXMALSERVER_STD_CMDS_IMPL_HPP_
10 #define EXMALSERVER_STD_CMDS_IMPL_HPP_
11 
12 #include "events.rad.hpp"
13 #include "logger.hpp"
14 
15 #include <rad/exceptions.hpp>
16 #include <rad/smAdapter.hpp>
17 
18 namespace exmalserver {
19 
20 class StdCmdsImpl : public exmalif::AsyncStdCmds {
21  public:
22  explicit StdCmdsImpl(rad::SMAdapter& sm) : m_sm(sm) { RAD_TRACE(GetLogger()); }
23 
24  virtual ~StdCmdsImpl() { RAD_TRACE(GetLogger()); }
25 
26  virtual elt::mal::future<std::string> Exit() override {
28  auto ev = std::make_shared<Events::Exit>();
29  m_sm.PostEvent(ev);
30  return ev->GetPayload().GetReplyFuture();
31  }
32 
33  virtual elt::mal::future<std::string> Init() override {
35  auto ev = std::make_shared<Events::Init>();
36  m_sm.PostEvent(ev);
37  return ev->GetPayload().GetReplyFuture();
38  }
39 
40  virtual elt::mal::future<std::string> Stop() override {
42  auto ev = std::make_shared<Events::Stop>();
43  m_sm.PostEvent(ev);
44  return ev->GetPayload().GetReplyFuture();
45  }
46 
47  virtual elt::mal::future<std::string> Reset() override {
49  auto ev = std::make_shared<Events::Reset>();
50  m_sm.PostEvent(ev);
51  return ev->GetPayload().GetReplyFuture();
52  }
53 
54  virtual elt::mal::future<std::string> Status() override {
56  auto ev = std::make_shared<Events::Status>();
57  m_sm.PostEvent(ev);
58  return ev->GetPayload().GetReplyFuture();
59  }
60 
61  virtual elt::mal::future<std::string> Enable() override {
63  auto ev = std::make_shared<Events::Enable>();
64  m_sm.PostEvent(ev);
65  return ev->GetPayload().GetReplyFuture();
66  }
67 
68  virtual elt::mal::future<std::string> Disable() override {
70  auto ev = std::make_shared<Events::Disable>();
71  m_sm.PostEvent(ev);
72  return ev->GetPayload().GetReplyFuture();
73  }
74 
75  virtual elt::mal::future<std::string> Config() override {
77  auto ev = std::make_shared<Events::Config>();
78  m_sm.PostEvent(ev);
79  return ev->GetPayload().GetReplyFuture();
80  }
81 
82  virtual elt::mal::future<std::string> SetLogLevel(
83  const std::shared_ptr<exmalif::LogInfo>& info) override {
85  auto ev = std::make_shared<Events::SetLogLevel>(info->clone());
86  m_sm.PostEvent(ev);
87  return ev->GetPayload().GetReplyFuture();
88  }
89 
90  virtual elt::mal::future<std::string> Preset(
91  const std::shared_ptr<exmalif::TelPosition>& pos) override {
93  auto ev = std::make_shared<Events::Preset>(pos->clone());
94  m_sm.PostEvent(ev);
95  return ev->GetPayload().GetReplyFuture();
96  }
97 
98  virtual std::shared_ptr<::elt::mal::rr::Ami<std::string>> GetPresetProgress() override {
100  auto ev = std::make_shared<Events::GetPresetProgress>();
101  m_sm.PostEvent(ev);
102  return ev->GetPayload().GetAmiServer();
103  }
104 
105  virtual elt::mal::future<std::string> Move(
106  const std::shared_ptr<exmalif::AxesPosition>& pos) override {
107  RAD_TRACE(GetLogger());
108  auto ev = std::make_shared<Events::Move>(pos->clone());
109  m_sm.PostEvent(ev);
110  return ev->GetPayload().GetReplyFuture();
111  }
112 
113  private:
114  rad::SMAdapter& m_sm;
115 };
116 
117 } // namespace exmalserver
118 
119 #endif // EXMALSERVER_STD_CMDS_IMPL_HPP_
Default logger name.
virtual ~StdCmdsImpl()
Definition: stdCmdsImpl.hpp:24
Definition: Exmalif.hpp:140
StdCmdsImpl(rad::SMAdapter &sm)
Definition: stdCmdsImpl.hpp:22
virtual elt::mal::future< std::string > SetLogLevel(const std::shared_ptr< exmalif::LogInfo > &info) override
Definition: stdCmdsImpl.hpp:82
virtual elt::mal::future< std::string > Disable() override
Definition: stdCmdsImpl.hpp:68
log4cplus::Logger & GetLogger()
Definition: logger.cpp:14
virtual elt::mal::future< std::string > Config() override
Definition: stdCmdsImpl.hpp:75
void PostEvent(SharedEvent e)
Definition: smAdapter.cpp:181
virtual elt::mal::future< std::string > Stop() override
Definition: stdCmdsImpl.hpp:40
virtual elt::mal::future< std::string > Exit() override
Definition: stdCmdsImpl.hpp:26
Definition: smAdapter.hpp:42
virtual elt::mal::future< std::string > Preset(const std::shared_ptr< exmalif::TelPosition > &pos) override
Definition: stdCmdsImpl.hpp:90
#define RAD_TRACE(logger)
Definition: logger.hpp:19
virtual elt::mal::future< std::string > Status() override
Definition: stdCmdsImpl.hpp:54
virtual std::shared_ptr<::elt::mal::rr::Ami< std::string > > GetPresetProgress() override
Definition: stdCmdsImpl.hpp:98
virtual elt::mal::future< std::string > Init() override
Definition: stdCmdsImpl.hpp:33
virtual elt::mal::future< std::string > Reset() override
Definition: stdCmdsImpl.hpp:47
virtual elt::mal::future< std::string > Enable() override
Definition: stdCmdsImpl.hpp:61
virtual elt::mal::future< std::string > Move(const std::shared_ptr< exmalif::AxesPosition > &pos) override
Definition: stdCmdsImpl.hpp:105