13#ifndef RTCTK_COMPONENTFRAMEWORK_STDCMDSIMPL_HPP
14#define RTCTK_COMPONENTFRAMEWORK_STDCMDSIMPL_HPP
18#include <rtctk/componentFramework/events.rad.hpp>
38 std::shared_ptr<elt::mal::rr::RrEntity>
rr_service =
44 : m_logger(GetLogger(
"rtctk")), m_engine(
engine), m_mal(std::
move(mal)) {
47 ::elt::mal::future<std::string>
Init()
override {
52 ::elt::mal::future<std::string>
Stop()
override {
57 ::elt::mal::future<std::string>
Reset()
override {
62 ::elt::mal::future<std::string>
Enable()
override {
67 ::elt::mal::future<std::string>
Disable()
override {
72 ::elt::mal::future<std::string>
GetState()
override {
77 ::elt::mal::future<std::string>
GetStatus()
override {
87 ::elt::mal::future<std::string>
Exit()
override {
92 ::elt::mal::future<std::string>
95 "Received command 'SetLogLevel' with logger '" +
info->getLogger() +
96 "' and level '" +
info->getLevel() +
"'");
97 auto ev = std::make_shared<events::SetLogLevel>(
info->clone());
98 auto f =
ev->GetPayload().GetReplyFuture();
103 ::elt::mal::future<std::vector<std::shared_ptr<stdif::LogInfo>>>
106 "Received command 'GetLogLevel' for logger '" +
req_loggers +
"'");
107 boost::promise<std::vector<std::shared_ptr<stdif::LogInfo>>>
promise;
109 std::vector<std::shared_ptr<stdif::LogInfo>> loggers{};
111 for (
const log4cplus::Logger& logger : log4cplus::Logger::getCurrentLoggers()) {
112 std::shared_ptr<stdif::LogInfo>
log = m_mal->createDataEntity<stdif::LogInfo>();
113 log->setLogger(logger.getName());
114 log->setLevel(log4cplus::getLogLevelManager().toString(logger.getLogLevel()));
117 loggers.push_back(std::move(
log));
120 loggers.push_back(std::move(
log));
127 for (
const std::shared_ptr<stdif::LogInfo>&
l : loggers) {
141 return boost::make_ready_future<std::vector<std::shared_ptr<stdif::LogInfo>>>(loggers);
145 log4cplus::Logger& m_logger;
147 std::shared_ptr<elt::mal::Mal> m_mal;
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 stdif commands.
Definition stdCmdsImpl.hpp:35
::elt::mal::future< std::string > Stop() override
Definition stdCmdsImpl.hpp:52
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition stdCmdsImpl.hpp:37
StdCmdsImpl(StateMachineEngine &engine, std::shared_ptr< elt::mal::Mal > mal)
Definition stdCmdsImpl.hpp:43
::elt::mal::future< std::string > Reset() override
Definition stdCmdsImpl.hpp:57
::elt::mal::future< std::vector< std::shared_ptr< stdif::LogInfo > > > GetLogLevel(const std::string &req_loggers) override
Definition stdCmdsImpl.hpp:104
::elt::mal::future< std::string > Init() override
Definition stdCmdsImpl.hpp:47
::elt::mal::future< std::string > Exit() override
Definition stdCmdsImpl.hpp:87
::elt::mal::future< std::string > GetStatus() override
Definition stdCmdsImpl.hpp:77
::elt::mal::future< std::string > GetState() override
Definition stdCmdsImpl.hpp:72
::elt::mal::future< std::string > SetLogLevel(const std::shared_ptr< stdif::LogInfo > &info) override
Definition stdCmdsImpl.hpp:93
::elt::mal::future< std::string > Disable() override
Definition stdCmdsImpl.hpp:67
::elt::mal::future< std::string > GetVersion() override
Definition stdCmdsImpl.hpp:82
::elt::mal::future< std::string > Enable() override
Definition stdCmdsImpl.hpp:62
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.