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