8#ifndef SUP_SUBSIM_COMMON_APP_CMDS_IMPL_HPP_
9#define SUP_SUBSIM_COMMON_APP_CMDS_IMPL_HPP_
11#include "ifw/sup/subsim/common/events.rad.hpp"
12#include <ifw/core/utils/bat/logger.hpp>
15#include <rad/exceptions.hpp>
16#include <rad/smAdapter.hpp>
23 explicit AppCmdsImpl(rad::SMAdapter& sm) : mSM(sm), m_logger(
ifw::core::utils::bat::GetAppLogger()) {
29 virtual elt::mal::future<std::string>
Setup()
override {
30 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::Setup"));
31 Events::Setup* ev =
new Events::Setup();
32 mSM.PostEvent(rad::UniqueEvent(ev));
33 return ev->GetPayload().GetReplyFuture();
36 virtual elt::mal::future<std::string>
OpenLoop()
override {
37 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::OpenLoop"));
38 Events::OpenLoop* ev =
new Events::OpenLoop();
39 mSM.PostEvent(rad::UniqueEvent(ev));
40 return ev->GetPayload().GetReplyFuture();
43 virtual elt::mal::future<std::string>
ClosedLoop()
override {
44 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::ClosedLoop"));
45 Events::ClosedLoop* ev =
new Events::ClosedLoop();
46 mSM.PostEvent(rad::UniqueEvent(ev));
47 return ev->GetPayload().GetReplyFuture();
50 virtual elt::mal::future<std::string>
CmdStatus(
const std::vector<std::string>& cmds)
override {
51 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::CmdStatus"));
52 Events::CmdStatus* ev =
new Events::CmdStatus(cmds);
53 mSM.PostEvent(rad::UniqueEvent(ev));
54 return ev->GetPayload().GetReplyFuture();
57 virtual elt::mal::future<std::string>
CmdConfig(
const std::vector<std::string>& cmds)
override {
58 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::CmdConfig"));
59 Events::CmdConfig* ev =
new Events::CmdConfig(cmds);
60 mSM.PostEvent(rad::UniqueEvent(ev));
61 return ev->GetPayload().GetReplyFuture();
64 virtual elt::mal::future<std::string>
Config(
const std::vector<std::shared_ptr<subsimif::ConfigCmdReply>>& buffer)
override {
65 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::Config"));
66 Events::Config* ev =
new Events::Config(buffer);
67 mSM.PostEvent(rad::UniqueEvent(ev));
68 return ev->GetPayload().GetReplyFuture();
71 virtual elt::mal::future<std::string>
GetConfig()
override {
72 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::GetConfig"));
74 Events::GetConfig* ev =
new Events::GetConfig();
75 mSM.PostEvent(rad::UniqueEvent(ev));
76 return ev->GetPayload().GetReplyFuture();
79 virtual elt::mal::future<std::string>
SetLog(
const std::string& level)
override {
80 LOG4CPLUS_TRACE_METHOD(m_logger, LOG4CPLUS_TEXT(
"AppCmdsImpl::SetLog"));
81 Events::SetLog* ev =
new Events::SetLog(level);
82 mSM.PostEvent(rad::UniqueEvent(ev));
83 return ev->GetPayload().GetReplyFuture();
89 log4cplus::Logger m_logger;
virtual elt::mal::future< std::string > Config(const std::vector< std::shared_ptr< subsimif::ConfigCmdReply > > &buffer) override
Definition appCmdsImpl.hpp:64
virtual elt::mal::future< std::string > CmdStatus(const std::vector< std::string > &cmds) override
Definition appCmdsImpl.hpp:50
virtual elt::mal::future< std::string > SetLog(const std::string &level) override
Definition appCmdsImpl.hpp:79
virtual ~AppCmdsImpl()
Definition appCmdsImpl.hpp:26
virtual elt::mal::future< std::string > OpenLoop() override
Definition appCmdsImpl.hpp:36
virtual elt::mal::future< std::string > CmdConfig(const std::vector< std::string > &cmds) override
Definition appCmdsImpl.hpp:57
virtual elt::mal::future< std::string > Setup() override
Definition appCmdsImpl.hpp:29
AppCmdsImpl(rad::SMAdapter &sm)
Definition appCmdsImpl.hpp:23
virtual elt::mal::future< std::string > GetConfig() override
Definition appCmdsImpl.hpp:71
virtual elt::mal::future< std::string > ClosedLoop() override
Definition appCmdsImpl.hpp:43
ActionMgr class source file.
Definition actionMgr.cpp:28
Definition actionMgr.cpp:28