RTC Toolkit 5.0.0
Loading...
Searching...
No Matches
deploymentDaemonCmdsImpl.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_REUSABLECOMPONENT_DEPLOYMENT_DAEMONIMPL_HPP
14#define RTCTK_REUSABLECOMPONENT_DEPLOYMENT_DAEMONIMPL_HPP
15
16#include "deploymentDaemonEvents.rad.hpp"
17#include <Rtctkif.hpp>
18
23
24#include <mal/Cii.hpp>
25
26#include <memory>
27#include <string>
28
30
32
36class DeploymentCmdsImpl : public rtctkif::AsyncDeploymentCmds {
37public:
39 std::shared_ptr<elt::mal::rr::RrEntity> rr_service =
40 std::make_shared<DeploymentCmdsImpl>(engine);
41 replier.RegisterService<rtctkif::AsyncDeploymentCmds>("DeploymentCmds", rr_service);
42 }
43
45 : m_logger(cfw::GetLogger("rtctk")), m_engine(engine) {
46 }
47
48 ::elt::mal::future<std::string> Deploy(const std::string& deploy_set) override {
49 LOG4CPLUS_TRACE(m_logger, "Received command 'Deploy' with deploy_set '" + deploy_set);
50 auto ev = std::make_shared<deployment_daemon_events::Deploy>(deploy_set);
51 auto f = ev->GetPayload().GetReplyFuture();
52 m_engine.PostEvent(ev);
53 return f;
54 }
55
56 ::elt::mal::future<std::string> Undeploy() override {
57 LOG4CPLUS_TRACE(m_logger, "Received command 'Undeploy'");
58 auto ev = std::make_shared<deployment_daemon_events::Undeploy>();
59 auto f = ev->GetPayload().GetReplyFuture();
60 m_engine.PostEvent(ev);
61 return f;
62 }
63
64 ::elt::mal::future<std::string> GetActiveDeployment() override {
65 LOG4CPLUS_TRACE(m_logger, "Received command 'GetActiveDeployment'");
67 }
68
69 ::elt::mal::future<std::string> GetDescription() override {
70 LOG4CPLUS_TRACE(m_logger, "Received command 'GetDescription'");
72 }
73
74 ::elt::mal::future<std::vector<std::string>> GetDeploymentSets() override {
75 LOG4CPLUS_TRACE(m_logger, "Received command 'GetDeploymentSets'");
76 auto ev = std::make_shared<deployment_daemon_events::GetDeploymentSets>();
77 auto f = ev->GetPayload().GetReplyFuture();
78 m_engine.PostEvent(ev);
79 return f;
80 }
81
82 ::elt::mal::future<std::vector<std::string>> GetComponents() override {
83 LOG4CPLUS_TRACE(m_logger, "Received command 'GetComponents'");
84 auto ev = std::make_shared<deployment_daemon_events::GetComponents>();
85 auto f = ev->GetPayload().GetReplyFuture();
86 m_engine.PostEvent(ev);
87 return f;
88 }
89
90 ::elt::mal::future<std::vector<std::string>> GetActiveComponents() override {
91 LOG4CPLUS_TRACE(m_logger, "Received command 'GetActiveComponents'");
92 auto ev = std::make_shared<deployment_daemon_events::GetActiveComponents>();
93 auto f = ev->GetPayload().GetReplyFuture();
94 m_engine.PostEvent(ev);
95 return f;
96 }
97
98 ::elt::mal::future<std::string> StartComponent(const std::string& component_name) override {
99 LOG4CPLUS_TRACE(m_logger,
100 "Received command 'StartComponent' with component_name'" + component_name);
101 auto ev = std::make_shared<deployment_daemon_events::StartComponent>(component_name);
102 auto f = ev->GetPayload().GetReplyFuture();
103 m_engine.PostEvent(ev);
104 return f;
105 }
106
107 ::elt::mal::future<std::string> StopComponent(const std::string& component_name) override {
108 LOG4CPLUS_TRACE(m_logger,
109 "Received command 'StopComponent' with component_name'" + component_name);
110 auto ev = std::make_shared<deployment_daemon_events::StopComponent>(component_name);
111 auto f = ev->GetPayload().GetReplyFuture();
112 m_engine.PostEvent(ev);
113 return f;
114 }
115
116 ::elt::mal::future<std::vector<std::string>> GetServices() override {
117 LOG4CPLUS_TRACE(m_logger, "Received command 'GetServices'");
118 auto ev = std::make_shared<deployment_daemon_events::GetServices>();
119 auto f = ev->GetPayload().GetReplyFuture();
120 m_engine.PostEvent(ev);
121 return f;
122 }
123
124 ::elt::mal::future<std::vector<std::string>> GetActiveServices() override {
125 LOG4CPLUS_TRACE(m_logger, "Received command 'GetActiveServices'");
126 auto ev = std::make_shared<deployment_daemon_events::GetActiveServices>();
127 auto f = ev->GetPayload().GetReplyFuture();
128 m_engine.PostEvent(ev);
129 return f;
130 }
131
132 ::elt::mal::future<std::string> GetState() override {
133 LOG4CPLUS_TRACE(m_logger, "Received command 'GetState'");
135 }
136
137 ::elt::mal::future<std::string> Reset() override {
138 LOG4CPLUS_TRACE(m_logger, "Received command 'Reset'");
140 }
141
142 ::elt::mal::future<std::string> Exit() override {
143 LOG4CPLUS_TRACE(m_logger, "Received command 'Exit'");
145 }
146
147 ::elt::mal::future<std::string>
148 SetLogLevel(const std::shared_ptr<rtctkif::LogInfo>& info) override {
149 LOG4CPLUS_TRACE(m_logger,
150 "Received command 'SetLogLevel' with logger '" + info->getLogger() +
151 "' and level '" + info->getLevel() + "'");
152 auto ev = std::make_shared<deployment_daemon_events::SetLogLevel>(info->clone());
153 auto f = ev->GetPayload().GetReplyFuture();
154 m_engine.PostEvent(ev);
155 return f;
156 }
157
158private:
159 log4cplus::Logger& m_logger;
160 cfw::StateMachineEngine& m_engine;
161};
162
163} // namespace rtctk::deploymentDaemon
164
165#endif // RTCTK_REUSABLECOMPONENT_DEPLOYMENT_DAEMONIMPL_HPP
Class that handles reception of commands using MAL.
Definition commandReplier.hpp:30
Definition stateMachineEngine.hpp:35
void PostEvent(rad::SharedEvent s)
Injects a new event into the state machine engine.
Definition stateMachineEngine.cpp:148
Class that handles reception of DeploymentCmds commands.
Definition deploymentDaemonCmdsImpl.hpp:36
::elt::mal::future< std::vector< std::string > > GetServices() override
Definition deploymentDaemonCmdsImpl.hpp:116
::elt::mal::future< std::string > GetState() override
Definition deploymentDaemonCmdsImpl.hpp:132
::elt::mal::future< std::string > GetActiveDeployment() override
Definition deploymentDaemonCmdsImpl.hpp:64
::elt::mal::future< std::vector< std::string > > GetActiveServices() override
Definition deploymentDaemonCmdsImpl.hpp:124
static void Register(cfw::CommandReplier &replier, cfw::StateMachineEngine &engine)
Definition deploymentDaemonCmdsImpl.hpp:38
::elt::mal::future< std::vector< std::string > > GetComponents() override
Definition deploymentDaemonCmdsImpl.hpp:82
::elt::mal::future< std::string > Exit() override
Definition deploymentDaemonCmdsImpl.hpp:142
::elt::mal::future< std::string > StopComponent(const std::string &component_name) override
Definition deploymentDaemonCmdsImpl.hpp:107
::elt::mal::future< std::string > SetLogLevel(const std::shared_ptr< rtctkif::LogInfo > &info) override
Definition deploymentDaemonCmdsImpl.hpp:148
::elt::mal::future< std::string > Reset() override
Definition deploymentDaemonCmdsImpl.hpp:137
::elt::mal::future< std::string > Deploy(const std::string &deploy_set) override
Definition deploymentDaemonCmdsImpl.hpp:48
::elt::mal::future< std::string > Undeploy() override
Definition deploymentDaemonCmdsImpl.hpp:56
::elt::mal::future< std::vector< std::string > > GetDeploymentSets() override
Definition deploymentDaemonCmdsImpl.hpp:74
::elt::mal::future< std::string > StartComponent(const std::string &component_name) override
Definition deploymentDaemonCmdsImpl.hpp:98
::elt::mal::future< std::string > GetDescription() override
Definition deploymentDaemonCmdsImpl.hpp:69
::elt::mal::future< std::vector< std::string > > GetActiveComponents() override
Definition deploymentDaemonCmdsImpl.hpp:90
DeploymentCmdsImpl(cfw::StateMachineEngine &engine)
Definition deploymentDaemonCmdsImpl.hpp:44
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 deploymentDaemonBusinessLogic.cpp:33
Wrapper around the SCXML State Machine Engine.