13#ifndef RTCTK_COMPONENTFRAMEWORK_STDCOMPONENT_HPP
14#define RTCTK_COMPONENTFRAMEWORK_STDCOMPONENT_HPP
17#include <rtctk/componentFramework/events.rad.hpp>
42 explicit LogInfo(
const std::string& level,
const std::string& logger =
"")
43 : m_logger(logger), m_level(level) {
50 void setLogger(
const std::string& logger)
override {
58 void setLevel(
const std::string& level)
override {
66 bool keyEquals(
const stdif::LogInfo& other)
const override {
70 std::unique_ptr<stdif::LogInfo>
clone()
const override {
71 return std::make_unique<LogInfo>(m_logger, m_level);
74 std::unique_ptr<stdif::LogInfo>
cloneKey()
const override {
75 return std::make_unique<LogInfo>(m_logger, m_level);
114 :
stdif::ExceptionErr(
"Request " + request_id +
" rejected in state " + state_id,
169 m_engine.RegisterExitEvent(std::make_unique<events::Exit>());
199 m_engine.PostEvent(std::make_unique<events::Error>(std::move(eptr)));
228 engine.
RegisterAction(
"ActionInitialisingFailed", [
this](
auto c) {
238 engine.
RegisterAction(
"ActionInitialisingStopped", [
this](
auto c) {
240 if (req ==
nullptr) {
251 engine.
RegisterAction(
"ActionInitialisingRestarted", [
this](
auto c) {
253 if (req ==
nullptr) {
314 if (req ==
nullptr) {
326 if (req ==
nullptr) {
330 req->SetReplyValue(
m_engine.GetState());
337 if (req ==
nullptr) {
341 req->SetReplyValue(
m_engine.GetState());
348 if (req ==
nullptr) {
352 req->SetReplyValue(VERSION);
359 if (req ==
nullptr) {
363 auto loginfo = req->GetRequestPayload();
364 auto selected_logger = loginfo->getLogger();
365 auto& logger =
GetLogger(selected_logger);
366 log4cplus::LogLevelManager llm;
367 auto selected_ll = llm.fromString(loginfo->getLevel());
368 if (selected_ll == log4cplus::NOT_SET_LOG_LEVEL) {
371 logger.setLogLevel(selected_ll);
373 "Log Level of logger '" << loginfo->getLogger() <<
"' set to '"
374 << llm.toString(logger.getLogLevel())
389 "ActivityInitialising",
429 mm.AddState(
Initial,
"On::Initial",
"On:");
430 mm.AddState(
Composite,
"On::NotOperational",
"On:");
431 mm.AddState(
Simple,
"On::Operational",
"On:");
433 mm.AddState(
Initial,
"On::NotOperational::Initial",
"On::NotOperational");
434 mm.AddState(
Simple,
"On::NotOperational::NotReady",
"On::NotOperational");
435 mm.AddState(
Simple,
"On::NotOperational::Ready",
"On::NotOperational");
437 mm.AddTrans(
"Initial" ,
"On");
438 mm.AddTrans(
"On" ,
"Off" ,
"events.Exit",
"" ,
"ActionExit");
439 mm.AddTrans(
"On" ,
"" ,
"events.GetState",
"" ,
"ActionGetState");
440 mm.AddTrans(
"On" ,
"" ,
"events.GetStatus",
"" ,
"ActionGetStatus");
441 mm.AddTrans(
"On" ,
"" ,
"events.GetVersion",
"" ,
"ActionGetVersion");
442 mm.AddTrans(
"On" ,
"" ,
"events.SetLogLevel",
"" ,
"ActionSetLogLevel");
443 mm.AddTrans(
"On" ,
"On" ,
"events.Reset");
444 mm.AddTrans(
"On::Initial" ,
"On::NotOperational");
446 mm.AddState(
Simple,
"On::NotOperational::Starting",
"On::NotOperational",
"ActivityStarting" ,
"ActionStartingEntry");
448 mm.AddTrans(
"On::NotOperational::Initial" ,
"On::NotOperational::Starting");
449 mm.AddTrans(
"On::NotOperational::Starting" ,
"On::NotOperational::NotReady" ,
"events.Done",
"" ,
"ActionStartingDone");
451 mm.AddState(
Simple,
"On::NotOperational::Initialising",
"On::NotOperational",
"ActivityInitialising" ,
"ActionInitialisingEntry");
453 mm.AddTrans(
"On::NotOperational::NotReady" ,
"On::NotOperational::Initialising" ,
"events.Init");
454 mm.AddTrans(
"On::NotOperational::Initialising" ,
"On::NotOperational::Ready" ,
"events.Done",
"" ,
"ActionInitialisingDone");
455 mm.AddTrans(
"On::NotOperational::Initialising" ,
"On::NotOperational::NotReady" ,
"events.Error",
"" ,
"ActionInitialisingFailed");
456 mm.AddTrans(
"On::NotOperational::Initialising" ,
"On::NotOperational::NotReady" ,
"events.Stop",
"" ,
"ActionInitialisingStopped");
457 mm.AddTrans(
"On::NotOperational::Initialising" ,
"On::NotOperational::Initialising" ,
"events.Init",
"" ,
"ActionInitialisingRestarted");
458 mm.AddTrans(
"On::NotOperational::Ready" ,
"On::NotOperational::Initialising" ,
"events.Init");
460 mm.AddState(
Simple,
"On::NotOperational::Enabling",
"On::NotOperational",
"ActivityEnabling" ,
"ActionEnablingEntry");
462 mm.AddTrans(
"On::NotOperational::Ready" ,
"On::NotOperational::Enabling" ,
"events.Enable");
463 mm.AddTrans(
"On::NotOperational::Enabling" ,
"On::Operational" ,
"events.Done",
"" ,
"ActionEnablingDone");
464 mm.AddTrans(
"On::NotOperational::Enabling" ,
"On::NotOperational::Ready" ,
"events.Error",
"" ,
"ActionEnablingFailed");
468 mm.AddState(
Simple,
"On::NotOperational::Disabling",
"On::NotOperational",
"ActivityDisabling" ,
"ActionDisablingEntry");
469 mm.AddTrans(
"On::Operational" ,
"On::NotOperational::Disabling" ,
"events.Disable");
470 mm.AddTrans(
"On::NotOperational::Disabling" ,
"On::NotOperational::Ready" ,
"events.Done",
"" ,
"ActionDisablingDone");
471 mm.AddTrans(
"On::NotOperational::Disabling" ,
"On::NotOperational::Ready" ,
"events.Error",
"" ,
"ActionDisablingFailed");
Class that handles reception of commands using MAL.
Definition commandReplier.hpp:30
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition introspectionImpl.hpp:39
std::string getLevel() const override
Definition stdComponent.hpp:54
std::unique_ptr< stdif::LogInfo > cloneKey() const override
Definition stdComponent.hpp:74
std::string getLogger() const override
Definition stdComponent.hpp:46
bool hasKey() const override
Definition stdComponent.hpp:62
std::unique_ptr< stdif::LogInfo > clone() const override
Definition stdComponent.hpp:70
void setLevel(const std::string &level) override
Definition stdComponent.hpp:58
LogInfo(const std::string &level, const std::string &logger="")
Definition stdComponent.hpp:42
bool keyEquals(const stdif::LogInfo &other) const override
Definition stdComponent.hpp:66
void setLogger(const std::string &logger) override
Definition stdComponent.hpp:50
ModelBuilderBase(StateMachineEngine &engine)
Definition modelBuilderBase.hpp:37
ModelManipulator mm
Definition modelBuilderBase.hpp:79
Adapter object intended to be used in contexts without direct access to the output-stream object.
Definition exceptions.hpp:161
std::string Str() const
Convenience function for constructing a std::string from the exception.
Definition exceptions.hpp:179
Definition stateMachineEngine.hpp:35
void RegisterAction(const std::string &id, ActionMethod action)
Register action.
Definition stateMachineEngine.cpp:86
void RegisterRejectHandler(const std::string &id, RejectMethod reject)
Register reject handler.
Definition stateMachineEngine.cpp:129
static void Register(CommandReplier &replier, StateMachineEngine &engine)
Definition stdCmdsImpl.hpp:37
Definition stdComponent.hpp:148
virtual void ActivityInitialising(StopToken)
Definition stdComponent.hpp:151
virtual void ActivityEnabling(StopToken)
Definition stdComponent.hpp:152
virtual void ActivityStarting(StopToken st)
Definition stdComponent.hpp:150
virtual void ActivityDisabling(StopToken)
Definition stdComponent.hpp:153
ModelBuilder(StateMachineEngine &engine)
Definition stdComponent.hpp:422
std::function< void()> m_success_handler
Definition stdComponent.hpp:413
OutputStage(StateMachineEngine &engine, BizLogicIf &bl)
Definition stdComponent.hpp:185
virtual ~OutputStage()=default
StateMachineEngine & m_engine
Definition stdComponent.hpp:410
std::function< void(std::exception_ptr)> m_error_handler
Definition stdComponent.hpp:414
BizLogicIf & m_logic
Definition stdComponent.hpp:411
std::shared_ptr< rad::cii::Request< std::string, void > > m_tmp_request
Definition stdComponent.hpp:412
Thrown if somebody sent a stop or abort command.
Definition stdComponent.hpp:96
static constexpr int32_t ERROR_CODE
Definition stdComponent.hpp:98
StdIfRequestAborted()
Definition stdComponent.hpp:99
Thrown if the command was accepted but the task to run failed.
Definition stdComponent.hpp:123
static constexpr int32_t ERROR_CODE
Definition stdComponent.hpp:128
StdIfRequestFailed(const std::string &message)
Definition stdComponent.hpp:129
Thrown if the command is not allowed in current state or guard.
Definition stdComponent.hpp:107
StdIfRequestRejected(const std::string &request_id, const std::string &state_id)
Definition stdComponent.hpp:113
static constexpr int32_t ERROR_CODE
Definition stdComponent.hpp:112
Receive commands via MAL.
Provides macros and utilities for exception handling.
Implementation of MAL commands for layer 'IntrospectionIf'.
Logging Support Library based on log4cplus.
Base class of the ModelBuilder.
Definition commandReplier.cpp:22
@ Simple
Definition model.hpp:23
@ Composite
Definition model.hpp:23
@ Parallel
Definition model.hpp:23
@ Final
Definition model.hpp:23
@ Initial
Definition model.hpp:23
rad::StopToken StopToken
Definition stopToken.hpp:20
std::shared_ptr< typename EVENT::payload_t > GetPayloadNothrow(scxml4cpp::Context *c)
Definition stateMachineEngine.hpp:256
const std::string STD_OK_REPLY
Definition stdComponent.hpp:86
log4cplus::Logger & GetLogger(const std::string &name="app")
Get handle to a specific logger.
Definition logger.cpp:192
Definition statePublisher.hpp:25
A container that can hold any type of service.
Wrapper around the SCXML State Machine Engine.
Implementation of MAL commands for layer 'StdComponent'.
Basic life cycle for StdComponent.
Definition stdComponent.hpp:144
Various utilities for Life Cycle Extension.