RTC Toolkit 5.0.0
Loading...
Searching...
No Matches
rtcCmdsImpl.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_COMPONENTFRAMEWORK_RTCCMDSIMPL_HPP
14#define RTCTK_COMPONENTFRAMEWORK_RTCCMDSIMPL_HPP
15
16#include <Rtctkif.hpp>
18#include <rtctk/componentFramework/events.rad.hpp>
22
23#include <mal/Cii.hpp>
24
25#include <memory>
26#include <string>
27
29
35class FuncCmdsImpl : public rtctkif::AsyncFuncCmds {
36public:
38 std::shared_ptr<elt::mal::rr::RrEntity> rr_service = std::make_shared<FuncCmdsImpl>(engine);
39 replier.RegisterService<rtctkif::AsyncFuncCmds>("FuncCmds", rr_service);
40 }
41
43 : m_logger(GetLogger("rtctk")), m_engine(engine) {
44 }
45
46 ::elt::mal::future<std::string> Run() override {
47 LOG4CPLUS_TRACE(m_logger, "Received command 'Run'");
48 return InjectReqRepEvent<events::Run>(m_engine);
49 }
50
51 ::elt::mal::future<std::string> Idle() override {
52 LOG4CPLUS_TRACE(m_logger, "Received command 'Idle'");
53 return InjectReqRepEvent<events::Idle>(m_engine);
54 }
55
56private:
57 log4cplus::Logger& m_logger;
58 StateMachineEngine& m_engine;
59};
60
66class RecoverCmdsImpl : public rtctkif::AsyncRecoverCmds {
67public:
69 std::shared_ptr<elt::mal::rr::RrEntity> rr_service =
70 std::make_shared<RecoverCmdsImpl>(engine);
71 replier.RegisterService<rtctkif::AsyncRecoverCmds>("RecoverCmds", rr_service);
72 }
73
75 : m_logger(GetLogger("rtctk")), m_engine(engine) {
76 }
77
78 ::elt::mal::future<std::string> Recover() override {
79 LOG4CPLUS_TRACE(m_logger, "Received command 'Recover'");
81 }
82
83private:
84 log4cplus::Logger& m_logger;
85 StateMachineEngine& m_engine;
86};
87
93class AlertCmdsImpl : public rtctkif::AsyncAlertCmds {
94public:
96 std::shared_ptr<elt::mal::rr::RrEntity> rr_service =
97 std::make_shared<AlertCmdsImpl>(engine);
98 replier.RegisterService<rtctkif::AsyncAlertCmds>("AlertCmds", rr_service);
99 }
100
102 : m_logger(GetLogger("rtctk")), m_engine(engine) {
103 }
104
105 ::elt::mal::future<std::string> ClearAlerts() override {
106 LOG4CPLUS_TRACE(m_logger, "Received command 'ClearAlerts'");
108 }
109
110private:
111 log4cplus::Logger& m_logger;
112 StateMachineEngine& m_engine;
113};
114
120class UpdateCmdsImpl : public rtctkif::AsyncUpdateCmds {
121public:
123 std::shared_ptr<elt::mal::rr::RrEntity> rr_service =
124 std::make_shared<UpdateCmdsImpl>(engine);
125 replier.RegisterService<rtctkif::AsyncUpdateCmds>("UpdateCmds", rr_service);
126 }
127
129 : m_logger(GetLogger("rtctk")), m_engine(engine) {
130 }
131
132 ::elt::mal::future<std::string> Update(const std::string& args) override {
133 LOG4CPLUS_TRACE(m_logger, "Received command 'Update' with payload '" + args + "'");
134 return InjectReqRepEvent<events::Update>(m_engine, args);
135 }
136
137private:
138 log4cplus::Logger& m_logger;
139 StateMachineEngine& m_engine;
140};
141
142} // namespace rtctk::componentFramework
143
144#endif
Class that handles reception of command ClearAlerts using MAL.
Definition rtcCmdsImpl.hpp:93
AlertCmdsImpl(StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:101
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:95
::elt::mal::future< std::string > ClearAlerts() override
Definition rtcCmdsImpl.hpp:105
Class that handles reception of commands using MAL.
Definition commandReplier.hpp:30
Class that handles reception of commands Run, Idle and Recover using MAL.
Definition rtcCmdsImpl.hpp:35
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:37
::elt::mal::future< std::string > Idle() override
Definition rtcCmdsImpl.hpp:51
FuncCmdsImpl(StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:42
::elt::mal::future< std::string > Run() override
Definition rtcCmdsImpl.hpp:46
Class that handles reception of command Recover using MAL.
Definition rtcCmdsImpl.hpp:66
::elt::mal::future< std::string > Recover() override
Definition rtcCmdsImpl.hpp:78
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:68
RecoverCmdsImpl(StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:74
Definition stateMachineEngine.hpp:35
Class that handles reception of command Update using MAL.
Definition rtcCmdsImpl.hpp:120
::elt::mal::future< std::string > Update(const std::string &args) override
Definition rtcCmdsImpl.hpp:132
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:122
UpdateCmdsImpl(StateMachineEngine &engine)
Definition rtcCmdsImpl.hpp:128
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
Wrapper around the SCXML State Machine Engine.