RTC Toolkit 5.0.0
Loading...
Searching...
No Matches
supervisoryCmdsImpl.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_RTCSUPERVISOR_SUPERVISORYCMDSIMPL_HPP
14#define RTCTK_RTCSUPERVISOR_SUPERVISORYCMDSIMPL_HPP
15
16#include <Rtctkif.hpp>
21
22#include <rtctk/rtcSupervisor/supervisoryEvents.rad.hpp>
23
24#include <mal/Cii.hpp>
25
26#include <memory>
27#include <string>
28
29namespace rtctk::rtcSupervisor {
30
31using namespace rtctk::componentFramework;
32
38class ModeCmdsImpl : public rtctkif::AsyncModeCmds {
39public:
41 std::shared_ptr<elt::mal::rr::RrEntity> rr_service = std::make_shared<ModeCmdsImpl>(engine);
42 replier.RegisterService<rtctkif::AsyncModeCmds>("ModeCmds", rr_service);
43 }
44
46 : m_logger(GetLogger("rtctk")), m_engine(engine) {
47 }
48
49 ::elt::mal::future<std::string> SetModes(const std::string& args) override {
50 LOG4CPLUS_TRACE(m_logger, "Received command 'SetModes' with payload '" + args + "'");
51 return InjectReqRepEvent<events::SetModes>(this->m_engine, args);
52 }
53
54 ::elt::mal::future<std::string> SetDeferredModes(const std::string& args) override {
55 LOG4CPLUS_TRACE(m_logger,
56 "Received command 'SetDeferredModes' with payload '" + args + "'");
58 }
59
60 ::elt::mal::future<std::string> GetDeferredModes() override {
61 LOG4CPLUS_TRACE(m_logger, "Received command 'GetDeferredModes'");
63 }
64
65 ::elt::mal::future<std::string> GetAvailableModes() override {
66 LOG4CPLUS_TRACE(m_logger, "Received command 'GetAvailableModes'");
68 }
69
70 ::elt::mal::future<std::string> GetActiveModes() override {
71 LOG4CPLUS_TRACE(m_logger, "Received command 'GetActiveModes'");
72 return InjectReqRepEvent<events::GetActiveModes>(this->m_engine);
73 }
74
75private:
76 log4cplus::Logger& m_logger;
77 StateMachineEngine& m_engine;
78};
79
85class WriteBackCmdsImpl : public rtctkif::AsyncWriteBackCmds {
86public:
88 std::shared_ptr<elt::mal::rr::RrEntity> rr_service =
89 std::make_shared<WriteBackCmdsImpl>(engine);
90 replier.RegisterService<rtctkif::AsyncWriteBackCmds>("WriteBackCmds", rr_service);
91 }
92
94 : m_logger(GetLogger("rtctk")), m_engine(engine) {
95 }
96
97 ::elt::mal::future<std::string> WriteBack(const std::string& args) override {
98 LOG4CPLUS_TRACE(m_logger, "Received command 'WriteBack' with payload '" + args + "'");
99 return InjectReqRepEvent<events::WriteBack>(this->m_engine, args);
100 }
101
102private:
103 log4cplus::Logger& m_logger;
104 StateMachineEngine& m_engine;
105};
106
107} // namespace rtctk::rtcSupervisor
108
109#endif
Class that handles reception of commands using MAL.
Definition commandReplier.hpp:30
Definition stateMachineEngine.hpp:35
Class that handles reception of mode-related commands using MAL.
Definition supervisoryCmdsImpl.hpp:38
::elt::mal::future< std::string > GetAvailableModes() override
Definition supervisoryCmdsImpl.hpp:65
::elt::mal::future< std::string > GetDeferredModes() override
Definition supervisoryCmdsImpl.hpp:60
::elt::mal::future< std::string > SetDeferredModes(const std::string &args) override
Definition supervisoryCmdsImpl.hpp:54
::elt::mal::future< std::string > SetModes(const std::string &args) override
Definition supervisoryCmdsImpl.hpp:49
ModeCmdsImpl(StateMachineEngine &engine)
Definition supervisoryCmdsImpl.hpp:45
::elt::mal::future< std::string > GetActiveModes() override
Definition supervisoryCmdsImpl.hpp:70
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition supervisoryCmdsImpl.hpp:40
Class that handles reception of writeback-related commands using MAL.
Definition supervisoryCmdsImpl.hpp:85
WriteBackCmdsImpl(StateMachineEngine &engine)
Definition supervisoryCmdsImpl.hpp:93
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition supervisoryCmdsImpl.hpp:87
::elt::mal::future< std::string > WriteBack(const std::string &args) override
Definition supervisoryCmdsImpl.hpp:97
Receive commands via MAL.
Logging Support Library based on log4cplus.
Provides core functionality of an RTC Component.
Definition commandReplier.cpp:22
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Definition rtcSupervisor.cpp:24
Wrapper around the SCXML State Machine Engine.