Go to the documentation of this file.
9 #ifndef RTCTK_COMPONENTFRAMEWORK_STATEMACHINEENGINE_HPP
10 #define RTCTK_COMPONENTFRAMEWORK_STATEMACHINEENGINE_HPP
13 #include <rad/smAdapter.hpp>
14 #include <rad/signal.hpp>
19 using GuardMethod = std::function<bool(scxml4cpp::Context* c)>;
23 using RejectMethod = std::function<void(
const rad::AnyEvent&,
const std::string& state)>;
38 m_fsm_engine.RegisterDefaultRequestRejectHandler<T>();
47 boost::asio::io_service m_io_service;
48 scxml4cpp::Context m_fsm_ctx;
49 scxml4cpp::EventQueue m_event_queue;
50 rad::SMAdapter m_fsm_engine;
53 std::string m_scxml_file_name;
54 std::list<scxml4cpp::Action*> m_action_list;
55 std::list<scxml4cpp::Activity*> m_activity_list;
std::function< void()> SuccessMethod
Definition: stateMachineEngine.hpp:21
void Work()
Definition: stateMachineEngine.cpp:73
void RegisterModel(const std::string &scxml_filename)
Definition: stateMachineEngine.cpp:37
std::function< void(StopToken f)> ActivityMethod
Definition: stateMachineEngine.hpp:20
Definition: rtcComponent.hpp:17
std::function< void(const rad::AnyEvent &, const std::string &state)> RejectMethod
Definition: stateMachineEngine.hpp:23
void RegisterRejectHandler()
Definition: stateMachineEngine.hpp:37
void RegisterGuard(std::string const &id, GuardMethod guard)
Definition: stateMachineEngine.cpp:47
rad::StopToken StopToken
Definition: stopToken.hpp:16
Definition: stateMachineEngine.hpp:26
void RegisterAction(std::string const &id, ActionMethod action)
Definition: stateMachineEngine.cpp:42
~StateMachineEngine()
Definition: stateMachineEngine.cpp:26
std::function< void(const std::string &)> StateMethod
Definition: stateMachineEngine.hpp:24
std::function< bool(scxml4cpp::Context *c)> GuardMethod
Definition: stateMachineEngine.hpp:19
void RegisterRejectHandler(std::string const &id, RejectMethod reject)
void RegisterStateChangeHandler(StateMethod on_statechange)
Definition: stateMachineEngine.cpp:57
std::string GetState()
Definition: stateMachineEngine.cpp:68
std::function< void(const std::runtime_error &)> FailureMethod
Definition: stateMachineEngine.hpp:22
void PostEvent(rad::SharedEvent s)
Definition: stateMachineEngine.cpp:62
StateMachineEngine(rad::UniqueEvent exit_event)
Definition: stateMachineEngine.cpp:16
void Stop()
Definition: stateMachineEngine.cpp:90
void RegisterActivity(std::string const &id, ActivityMethod activity, SuccessMethod on_success, FailureMethod on_failure)
Definition: stateMachineEngine.cpp:52
std::function< void(scxml4cpp::Context *c)> ActionMethod
Definition: stateMachineEngine.hpp:18