3 #include <boost/msm/back/state_machine.hpp>
4 #include <boost/thread/recursive_mutex.hpp>
22 template <
class A0,
class A1 = parameter::void_,
class A2 = parameter::void_,
23 class A3 = parameter::void_,
class A4 = parameter::void_>
33 mutable boost::recursive_mutex process_event_mutex_;
37 std::type_index last_processed_event_index;
41 : state_machine<A0, A1, A2, A3, A4>(),
42 last_processed_event_index(
typeid(NULL)) {}
46 : state_machine<A0, A1, A2, A3, A4>(expr),
47 last_processed_event_index(
typeid(NULL)) {}
51 template <
class,
class,
class,
class,
class>
54 template <
class,
class,
class,
class,
class>
69 recursive_mutex::scoped_lock lock(process_event_mutex_);
71 std::type_index event_index =
typeid(Event);
73 last_processed_event_index = event_index;
74 return this->process_event_internal(evt,
true);
83 recursive_mutex::scoped_lock lock(process_event_mutex_);
84 return last_processed_event_index;
std::type_index lastProcessedEventIndex() const
Returns the type index of last processed event after locking.
Definition: thread_safe_state_machine.h:82
Thread safe state machine class that extends boost::msm::back::state_machine class.
Definition: thread_safe_state_machine.h:28
friend class boost::msm::back::state_machine
Definition: thread_safe_state_machine.h:52
The InternalTransitionEvent struct used to trigger action behaviors in states.
Definition: internal_transition_event.h:6
execute_return process_event(Event const &evt)
The process event function that triggers transition actions in state machine The function is thread s...
Definition: thread_safe_state_machine.h:68