RTC Toolkit  0.1.0-alpha
runnableStateMachine.hpp
Go to the documentation of this file.
1 
9 #ifndef RTCTK_COMPONENTFRAMEWORK_RUNNABLESTATEMACHINE_HPP
10 #define RTCTK_COMPONENTFRAMEWORK_RUNNABLESTATEMACHINE_HPP
11 
14 #include <memory>
15 
16 namespace rad::cii {
17  template <typename REP_TYPE, typename REQ_TYPE>
18  class Request;
19 }
20 
21 namespace rtctk::componentFramework {
22 
23 class StateMachineEngine;
24 
26  public:
28  RunnableStateMachine(RunnableStateMachineLogicIf& biz_logic, std::function<void(const std::string&)> on_statechange);
29  virtual ~RunnableStateMachine();
30  void PostEvent(std::shared_ptr<rad::AnyEvent> e) override;
31  void Work();
32  void Exit();
33 
34  private:
35  RunnableStateMachineLogicIf& m_business_logic;
36  std::unique_ptr<StateMachineEngine> m_sm_engine;
37  std::shared_ptr<rad::cii::Request<std::string, void>> m_tmp_request;
38  std::shared_ptr<rad::cii::Request<std::string, std::string>> m_tmp_update_request;
39 };
40 
41 } // closing namespace
42 
43 #endif
rtctk::componentFramework::RunnableStateMachine
Definition: runnableStateMachine.hpp:25
rtctk::componentFramework::RunnableStateMachine::Work
void Work()
Definition: runnableStateMachine.cpp:358
rtctk::componentFramework
Definition: rtcComponent.hpp:17
rtctk::componentFramework::RunnableStateMachineLogicIf
Definition: runnableStateMachineLogicIf.hpp:26
rtctk::componentFramework::StateMachineEventIf
Definition: stateMachineEventIf.hpp:20
rtctk::componentFramework::RunnableStateMachine::~RunnableStateMachine
virtual ~RunnableStateMachine()
Definition: runnableStateMachine.cpp:348
rtctk::componentFramework::RunnableStateMachine::RunnableStateMachine
RunnableStateMachine(RunnableStateMachineLogicIf &biz_logic)
Definition: runnableStateMachine.cpp:54
rad::cii
Definition: runnableStateMachine.hpp:16
rad::cii::Request
Definition: runnableStateMachine.hpp:18
runnableStateMachineLogicIf.hpp
Life-Cycle Interface of the Runnable State Machine.
stateMachineEventIf.hpp
Interface for injecting events into the state machine.
rtctk::componentFramework::RunnableStateMachine::Exit
void Exit()
Definition: runnableStateMachine.cpp:363
rtctk::componentFramework::RunnableStateMachine::PostEvent
void PostEvent(std::shared_ptr< rad::AnyEvent > e) override
Definition: runnableStateMachine.cpp:353