yasmine
sxy::SX_FINAL Class Reference

#include <async_simple_state_impl.hpp>

Inheritance diagram for sxy::SX_FINAL:
sxy::simple_state_base sxy::async_event_handler sxy::state_machine_base sxy::state_machine_element_impl sxy::transition sxy::behavior sxy::const_vertex_visitor sxy::complex_state_visitor sxy::region_pseudostate_impl sxy::choice sxy::complex_state_impl sxy::composite_state sxy::compound_transition sxy::transition_step sxy::constraint sxy::history_impl sxy::deep_history sxy::state_pseudostate_impl sxy::entry_point sxy::execution_step sxy::execution_step sxy::execution_step sxy::execution_step sxy::state_pseudostate_impl sxy::exit_point sxy::state_impl sxy::final_state sxy::region_pseudostate_impl sxy::fork sxy::region_pseudostate_impl sxy::initial_pseudostate sxy::region_pseudostate_impl sxy::join sxy::region_pseudostate_impl sxy::junction sxy::state_machine_element_impl sxy::region sxy::simple_state_base sxy::transition_step sxy::region_pseudostate_impl sxy::terminate_pseudostate

Public Member Functions

 async_simple_state_impl (const std::string &_name, async_behavior_uptr _do_action, behavior_uptr _entry_action=behavior_uptr(), behavior_uptr _exit_action=behavior_uptr(), const event_ids &_deferred_events=event_ids(), event_sptr _error_event=event_sptr())
 
virtual ~async_simple_state_impl () SX_NOEXCEPT SX_OVERRIDE
 
void execute_do_behavior (const event &_event, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
void execute_exit_behavior (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
void stop_do_behavior () const
 
 async_state_machine (const std::string &_name, event_processing_callback *const _event_processing_callback=SX_NULLPTR)
 Constructor. More...
 
virtual ~async_state_machine () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool fire_event (const event_sptr &_event) SX_OVERRIDE
 Enqueue the given event for firing. More...
 
virtual bool run () SX_OVERRIDE
 Starts the state machine. When starting the state machine, the initial transitions are searched and executed. Without running the state machine, it is not possible to fire events. More...
 
void halt_and_join ()
 Stops and joins the state machine. When stopping the state machine, all the events remaining in the queue of events will be processed and the event processing thread will be then stopped and joined. The state machine will also check for active asynchronous simple states and will stop the do behavior for all of them. More...
 
virtual void halt () SX_OVERRIDE
 Stops the state machine. When stopping the state machine, all the events remaining in the queue of events will be processed and the event processing thread will be then stopped and joined. The state machine will also check for active asynchronous simple states and will stop the do behavior for all of them. More...
 
void join ()
 Joins the thread of the state machine. More...
 
bool wait (const sxe::milliseconds _timeoutInMs) const
 Waiting given amount of time for the state machine to terminate (or to stop). More...
 
void wait () const
 Wait for the machine to terminate (or to stop). More...
 
bool terminated () const
 Check if the state machine is terminated or stopped. More...
 
virtual bool push (const event_sptr &_event) SX_OVERRIDE
 Enqueue the given event for firing. More...
 
 behavior_exception (const event_sptr &_event)
 
virtual ~behavior_exception () SX_NOEXCEPT SX_OVERRIDE
 
const event_sptr get_error_event () const
 
 event_creation_request (const sxe::time_point< sxe::system_clock > &_time, const event_sptr _event, const handle_type _handle)
 
 ~event_creation_request () SX_NOEXCEPT
 
 event_creation_request (event_creation_request &&)
 
event_creation_requestoperator= (event_creation_request &&)
 
sxe::time_point< sxe::system_clock > get_time () const
 
handle_type get_handle () const
 
event_sptr get_event () const
 
template<typename ... args>
 state_machine_defect (const state_machine_element &_element, const std::string &_message, args ... _args)
 
 ~state_machine_defect () SX_NOEXCEPT
 
const state_machine_elementget_element () const
 
const std::string & get_message () const
 
 states_nesting_comparer ()
 
 ~states_nesting_comparer () SX_NOEXCEPT
 
bool operator() (const state &_lhs, const state &_rhs) const
 
bool operator() (const state *const _lhs, const state *const _rhs) const
 
 states_nesting_comparer_ascending ()
 
 ~states_nesting_comparer_ascending () SX_NOEXCEPT
 
bool operator() (const state &_lhs, const state &_rhs) const
 
bool operator() (const state *const _lhs, const state *const _rhs) const
 
 timed_event_creator (async_state_machine &_async_state_machine)
 Constructor. More...
 
 ~timed_event_creator () SX_NOEXCEPT
 
handle_type create_event_creation_request (const sxe::time_point< sxe::system_clock > &_time_till_event_is_fired, const event_sptr _event)
 Creates an event creation request. More...
 
handle_type create_event_creation_request (const sxe::milliseconds &_time, const event_sptr &_event)
 Creates an event creation request. More...
 
bool cancel (const handle_type _handle)
 Cancels the event creation request with the given handle if the event is still in the queue of the event creator. More...
 
void run ()
 Starts the event creator. This has to be called before creating timed events. More...
 
void halt ()
 Stops the event creator. The event creator needs to be stopped before it is destroyed (if it was started). Else the internal thread is not cleaned-up correctly. More...
 
void join ()
 Joins the event creator thread. More...
 
void halt_and_join ()
 Stops and joins the event creator thread. The event creator needs to be stopped before it is destroyed (if it was started). Else the internal thread is not cleaned-up correctly. More...
 
 transition_impl (const event_id _event_id, vertex &_source, vertex &_target, const sxy::transition_kind _kind=transition_kind::EXTERNAL, constraint_uptr _guard=constraint_uptr(), behavior_uptr _behavior=behavior_uptr())
 
 transition_impl (const event_ids _event_ids, vertex &_source, vertex &_target, const sxy::transition_kind _kind=transition_kind::EXTERNAL, constraint_uptr _guard=constraint_uptr(), behavior_uptr _behavior=behavior_uptr())
 
virtual ~transition_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual const vertexget_source () const SX_OVERRIDE
 
virtual const vertexget_target () const SX_OVERRIDE
 
virtual vertexget_target () SX_OVERRIDE
 
virtual const constraintget_guard () const SX_OVERRIDE
 
virtual const behaviorget_behavior () const SX_OVERRIDE
 
virtual sxe::uri get_uri () const SX_OVERRIDE
 
virtual const state_machine_elementget_parent () const SX_OVERRIDE
 
virtual sxy::transition_kind get_kind () const SX_OVERRIDE
 
virtual void add_ancestor_uri (sxe::uri &_uri) const SX_OVERRIDE
 
virtual void on_transition_behavior (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
virtual bool check_guard (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual bool can_accept_event (const event_id _event) const SX_OVERRIDE
 
 behavior_impl (const behavior_function &_function)
 
virtual ~behavior_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual void operator() (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
 build_transition_steps_visitor (transition &_current_transition, transition_steps &_transitions_steps, const event &_event, event_collector &_event_collector)
 
virtual ~build_transition_steps_visitor () SX_NOEXCEPT SX_OVERRIDE
 
virtual void visit (const composite_state &_composite_state) SX_OVERRIDE
 
virtual void visit (const simple_state &_simple_state) SX_OVERRIDE
 
virtual void visit (const final_state &_final_state) SX_OVERRIDE
 
virtual void visit (const initial_pseudostate &_initial_pseudostate) SX_OVERRIDE
 
virtual void visit (const choice &_choice) SX_OVERRIDE
 
virtual void visit (const junction &_junction) SX_OVERRIDE
 
virtual void visit (const join &_join) SX_OVERRIDE
 
virtual void visit (const fork &_fork) SX_OVERRIDE
 
virtual void visit (const entry_point &_entry_point) SX_OVERRIDE
 
virtual void visit (const exit_point &_exit_point) SX_OVERRIDE
 
virtual void visit (const deep_history &_deep_history) SX_OVERRIDE
 
virtual void visit (const shallow_history &_shallow_history) SX_OVERRIDE
 
virtual void visit (const terminate_pseudostate &_terminate_pseudostate) SX_OVERRIDE
 
transitionget_next_transition () const
 
bool reached_end_of_transition () const
 
 check_if_all_incoming_transitions_sources_are_active_visitor ()
 
virtual ~check_if_all_incoming_transitions_sources_are_active_visitor () SX_NOEXCEPT SX_OVERRIDE
 
virtual void visit (const composite_state &_composite_state) SX_OVERRIDE
 
virtual void visit (const simple_state &_simple_state) SX_OVERRIDE
 
bool get_result () const
 
 choice_impl (const std::string &_name)
 
virtual ~choice_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
 composite_state_impl (const std::string &_name, behavior_uptr _entry_action=behavior_uptr(), behavior_uptr _exit_action=behavior_uptr(), const event_ids &_deferred_events=event_ids())
 
virtual ~composite_state_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual regionadd_region (region_uptr _region) SX_OVERRIDE
 
virtual regionadd_region (const std::string &_region_name) SX_OVERRIDE
 Creates a region with the given name and adds it to the parent composite state. More...
 
virtual const regionsget_regions () const SX_OVERRIDE
 
virtual regionsget_regions () SX_OVERRIDE
 
virtual regionget_region (const std::string &_region_name) const SX_OVERRIDE
 
bool is_complete () const SX_OVERRIDE
 
virtual const deep_historyget_deep_history () const SX_OVERRIDE
 
virtual deep_historyadd_deep_history (deep_history_uptr _deep_history) SX_OVERRIDE
 
virtual deep_historyadd_deep_history (const std::string &_deep_history_name) SX_OVERRIDE
 Creates a deep history with the given name and adds it to the parent composite state. More...
 
virtual shallow_historyget_shallow_history () const SX_OVERRIDE
 
virtual shallow_historyadd_shallow_history (shallow_history_uptr _shallow_history) SX_OVERRIDE
 
virtual shallow_historyadd_shallow_history (const std::string &_shallow_history_name) SX_OVERRIDE
 Creates a shallow history with the given name and adds it to the parent composite state. More...
 
virtual const raw_const_entry_points get_entry_points () const SX_OVERRIDE
 
virtual entry_pointadd_entry_point (entry_point_uptr _entry_point) SX_OVERRIDE
 
virtual entry_pointadd_entry_point (const std::string &_entry_point_name) SX_OVERRIDE
 Creates an entry point with the given name and adds it to the parent composite state. More...
 
virtual const raw_const_exit_points get_exit_points () const SX_OVERRIDE
 
virtual exit_pointadd_exit_point (exit_point_uptr _exit_point) SX_OVERRIDE
 
virtual exit_pointadd_exit_point (const std::string &_exit_point_name) SX_OVERRIDE
 Creates an exit point with the given name and adds it to the parent composite state. More...
 
virtual vertexget_pseudostate (const std::string &_name_of_pseudostate) const SX_OVERRIDE
 
virtual size_t get_region_index (const region *const _region) const SX_OVERRIDE
 
virtual size_t get_parent_region_index () const SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_complex_state_visitor (complex_state_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_state_visitor (state_visitor &_visitor) const SX_OVERRIDE
 
virtual bool is_orthogonal () const SX_OVERRIDE
 
 compound_transition_impl ()
 
virtual ~compound_transition_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual transition_stepsget_transition_steps () SX_OVERRIDE
 
virtual const vertexget_last_target () const SX_OVERRIDE
 
virtual const compound_transitionsget_sub_compound_transitions () const SX_OVERRIDE
 
virtual void add_sub_compound_transition (compound_transition_uptr _sub_compound_transition) SX_OVERRIDE
 
virtual regionget_LCA_region () SX_OVERRIDE
 
virtual composite_stateget_LCA_composite_state () SX_OVERRIDE
 
virtual transition_kind get_transition_kind () SX_OVERRIDE
 
virtual bool check_if_starts_with (const transition &_incoming_transition) SX_OVERRIDE
 
virtual bool create_and_check_transition_path (transition &_start_transition, const event &_event, event_collector &_event_collector) SX_OVERRIDE
 
 compound_transition_step (const raw_transitions &_transition_step)
 
virtual ~compound_transition_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual const raw_transitionsget_transitions () const SX_OVERRIDE
 
virtual const vertexget_unique_source () const SX_OVERRIDE
 
virtual const vertexget_unique_target () const SX_OVERRIDE
 
virtual const exit_pointget_exit_point () const SX_OVERRIDE
 
virtual const entry_pointget_entry_point () const SX_OVERRIDE
 
virtual const raw_const_vertices get_target_vertices () SX_OVERRIDE
 
void execute_transition_behaviors (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
 constraint_impl (const constraint_function &_function)
 
virtual ~constraint_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool operator() (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
 deep_history_impl (const std::string &_name)
 
virtual ~deep_history_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
 entry_point_impl (const std::string &_name)
 
virtual ~entry_point_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
 execution_state_do_step (const state &_state)
 
virtual ~execution_state_do_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool execute_behavior (event_processing_callback *const _event_processing_callback, const event &_event, events &_exception_events, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
virtual void accept (execution_step_visitor &_visitor) const SX_OVERRIDE
 
const stateget_state () const
 
 execution_state_enter_step (state &_state)
 
virtual ~execution_state_enter_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool execute_behavior (event_processing_callback *const _event_processing_callback, const event &_event, events &_exception_events, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
virtual void accept (execution_step_visitor &_visitor) const SX_OVERRIDE
 
const stateget_state () const
 
 execution_state_exit_step (state &_state)
 
virtual ~execution_state_exit_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool execute_behavior (event_processing_callback *const _event_processing_callback, const event &_event, events &_exception_events, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
virtual void accept (execution_step_visitor &_visitor) const SX_OVERRIDE
 
const stateget_state () const
 
 execution_transition_step (transition_step &_transition_step)
 
virtual ~execution_transition_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool execute_behavior (event_processing_callback *const _event_processing_callback, const event &_event, events &_exception_events, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
virtual void accept (execution_step_visitor &_visitor) const SX_OVERRIDE
 
const transition_stepget_transition_step () const
 
 exit_point_impl (const std::string &_name)
 
virtual ~exit_point_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
 final_state_impl (const std::string &_name)
 
virtual ~final_state_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual behaviorget_entry_behavior () const SX_OVERRIDE
 
virtual behaviorget_exit_behavior () const SX_OVERRIDE
 
virtual const regionsget_regions () const SX_OVERRIDE
 
virtual regionsget_regions () SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_state_visitor (state_visitor &_visitor) const SX_OVERRIDE
 
virtual bool is_event_deferred (const event_id &_event_id) const SX_OVERRIDE
 
 fork_impl (const std::string &_name)
 
virtual ~fork_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
virtual void add_incoming_transition (transition &_incoming_transition) SX_OVERRIDE
 
 initial_pseudostate_impl (const std::string &_name)
 
virtual ~initial_pseudostate_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
virtual transitionget_transition () const SX_OVERRIDE
 
virtual void add_incoming_transition (transition &_incoming_transition) SX_OVERRIDE
 
 join_impl (const std::string &_name)
 
virtual ~join_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check_if_all_source_states_of_incoming_transitions_are_active () const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void add_outgoing_transition (transition &_outgoing_transition) SX_OVERRIDE
 
 junction_impl (const std::string &_name)
 
virtual ~junction_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
 region_impl (const std::string &_name)
 
virtual ~region_impl () SX_NOEXCEPT SX_OVERRIDE
 
void set_parent_state (composite_state *const _composite_state) SX_OVERRIDE
 
virtual raw_const_states get_states () const SX_OVERRIDE
 
virtual const composite_stateget_parent_state () const SX_OVERRIDE
 
virtual composite_stateget_parent_state () SX_OVERRIDE
 
virtual vertexget_vertex (const std::string &_vertex_name) const SX_OVERRIDE
 
virtual size_t get_pseudostate_count () const SX_OVERRIDE
 
virtual vertexget_pseudostate (const std::string &_name) const SX_OVERRIDE
 
virtual raw_const_pseudostates get_pseudostates () const SX_OVERRIDE
 
virtual initial_pseudostateget_initial_pseudostate () const SX_OVERRIDE
 
virtual size_t get_state_count () const SX_OVERRIDE
 
virtual stateget_state (const std::string &_name) const SX_OVERRIDE
 
virtual const stateget_active_state () const SX_OVERRIDE
 
virtual stateget_active_state () SX_OVERRIDE
 
virtual void set_active_state (state *const _active_state) SX_OVERRIDE
 
virtual void set_state_was_active (state *const _active_state) SX_OVERRIDE
 
virtual const stateget_last_active_state () const SX_OVERRIDE
 
virtual stateget_last_active_state () SX_OVERRIDE
 
virtual initial_pseudostateadd_initial_pseudostate (initial_pseudostate_uptr _initial_state) SX_OVERRIDE
 
virtual initial_pseudostateadd_initial_pseudostate (const std::string &_initial_state_name) SX_OVERRIDE
 Creates an initial pseudostate with the given name and adds it to the parent region. More...
 
virtual stateadd_state (state_uptr _state) SX_OVERRIDE
 
virtual simple_stateadd_simple_state (const std::string &_simple_state_name, const behavior_function &_behavior=behavior_function(), const behavior_function &_entry_behavior=behavior_function(), const behavior_function &_exit_behavior=behavior_function()) SX_OVERRIDE
 
virtual simple_stateadd_simple_state (const std::string &_simple_state_name, const event_ids &_deferred_events, const behavior_function &_behavior=behavior_function(), const behavior_function &_entry_behavior=behavior_function(), const behavior_function &_exit_behavior=behavior_function(), event_sptr _error_event=event_sptr()) SX_OVERRIDE
 
virtual simple_stateadd_async_simple_state (const std::string &_async_simple_state_name, const event_ids &_deferred_events, async_behavior_uptr _do_action=async_behavior_uptr(), const behavior_function &_entry_behavior=behavior_function(), const behavior_function &_exit_behavior=behavior_function(), event_sptr _error_event=event_sptr()) SX_OVERRIDE
 
virtual composite_stateadd_composite_state (const std::string &_composite_state_name, const behavior_function &_entry_action=behavior_function(), const behavior_function &_exit_action=behavior_function()) SX_OVERRIDE
 
virtual composite_stateadd_composite_state (const std::string &_composite_state_name, const event_ids &_deferred_events, const behavior_function &_entry_action=behavior_function(), const behavior_function &_exit_action=behavior_function()) SX_OVERRIDE
 
virtual final_stateadd_final_state (const std::string &_name) SX_OVERRIDE
 
virtual choiceadd_choice (choice_uptr _choice) SX_OVERRIDE
 
virtual choiceadd_choice (const std::string &_choice_name) SX_OVERRIDE
 Creates a choice with the given name and adds it to the parent region. More...
 
virtual forkadd_fork (fork_uptr _fork) SX_OVERRIDE
 
virtual forkadd_fork (const std::string &_fork_name) SX_OVERRIDE
 Creates a fork with the given name and adds it to the parent region. More...
 
virtual joinadd_join (join_uptr _join) SX_OVERRIDE
 
virtual joinadd_join (const std::string &_join_name) SX_OVERRIDE
 Creates a join with the given name and adds it to the parent region. More...
 
virtual junctionadd_junction (junction_uptr _junction) SX_OVERRIDE
 
virtual junctionadd_junction (const std::string &_junction_name) SX_OVERRIDE
 Creates a junction with the given name and adds it to the parent region. More...
 
virtual terminate_pseudostateadd_terminate_pseudostate (terminate_pseudostate_uptr _terminate_pseudostate) SX_OVERRIDE
 
virtual terminate_pseudostateadd_terminate_pseudostate (const std::string &_terminate_pseudostate_name) SX_OVERRIDE
 Creates a terminate pseudostate with the given name and adds it to the parent region. More...
 
sxe::uri get_uri () const SX_OVERRIDE
 
void add_ancestor_uri (sxe::uri &_uri) const SX_OVERRIDE
 
virtual bool is_active_state_final () const SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual const state_machine_elementget_parent () const SX_OVERRIDE
 
 simple_state_impl (const std::string &_name, behavior_uptr do_action=behavior_uptr(), behavior_uptr _entry_action=behavior_uptr(), behavior_uptr _exit_action=behavior_uptr(), const event_ids &_deferred_events=event_ids(), event_sptr _error_event=event_sptr())
 
virtual ~simple_state_impl () SX_NOEXCEPT SX_OVERRIDE
 
void execute_do_behavior (const event &_event, async_event_handler *const _async_event_handler, event_collector &_event_collector) const SX_OVERRIDE
 
 simple_transition_step (transition &_transition)
 
virtual ~simple_transition_step () SX_NOEXCEPT SX_OVERRIDE
 
virtual const raw_transitionsget_transitions () const SX_OVERRIDE
 
virtual const vertexget_unique_source () const SX_OVERRIDE
 
virtual const vertexget_unique_target () const SX_OVERRIDE
 
virtual const exit_pointget_exit_point () const SX_OVERRIDE
 
virtual const entry_pointget_entry_point () const SX_OVERRIDE
 
virtual const raw_const_vertices get_target_vertices () SX_OVERRIDE
 
void execute_transition_behaviors (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
 terminate_pseudostate_impl (const std::string &_name)
 
virtual ~terminate_pseudostate_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool check (state_machine_defects &_defects) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (const_vertex_visitor &_visitor) const SX_OVERRIDE
 
virtual void accept_vertex_visitor (vertex_visitor &_visitor) SX_OVERRIDE
 
virtual void accept_pseudostate_visitor (pseudostate_visitor &_visitor) const SX_OVERRIDE
 
virtual void add_outgoing_transition (transition &_outgoing_transition) SX_OVERRIDE
 
 transition_controller ()
 
 ~transition_controller () SX_NOEXCEPT
 
 transition_executor ()
 
 ~transition_executor () SX_NOEXCEPT
 
bool check_sort_and_execute_transitions (const compound_transitions &_compound_transitions, raw_const_choices &_verices, event_processing_callback *const _event_processing_callback, const event &_event, events &_exception_events, async_event_handler *const _async_event_handler, event_collector &_event_collector, const interruptible &_interruptible)
 
 transition_finder ()
 
 ~transition_finder () SX_NOEXCEPT
 
void search_for_enabled_transitions_in_all_regions (const state &_current_state, const event &_event, compound_transitions &_enabled_compound_transitions, bool &_event_is_deferred, event_collector &_event_collector) const
 
void search_for_enabled_completion_transitions_in_all_regions (const state &_current_state, compound_transitions &_enabled_compound_transitions, bool &_event_is_deferred, event_collector &_event_collector) const
 
 transition_priority (compound_transition &_compound_transition)
 
 ~transition_priority () SX_NOEXCEPT
 
std::size_t get_priority () const
 
compound_transitionget_compound_transition () const
 
bool operator< (const transition_priority &_compare_member) const
 
- Public Member Functions inherited from sxy::terminate_pseudostate
 terminate_pseudostate ()
 
virtual ~terminate_pseudostate () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::region_pseudostate
 region_pseudostate ()
 
virtual ~region_pseudostate () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::pseudostate
 pseudostate ()
 
virtual ~pseudostate () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::vertex
 vertex ()
 
virtual ~vertex () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_machine_element
 state_machine_element ()
 
virtual ~state_machine_element () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::region_pseudostate_impl
 region_pseudostate_impl (const std::string &_name)
 
virtual ~region_pseudostate_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual regionget_parent_region () const SX_OVERRIDE
 
virtual void set_parent_region (region *const _parent_region) SX_OVERRIDE
 
virtual raw_composite_states get_ancestors (composite_state *const _final_ancestor, bool _include_final_ancestor=true) const SX_OVERRIDE
 
virtual raw_regions get_ancestors_as_regions () const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::pseudostate_impl
 pseudostate_impl (const std::string &_name)
 
virtual ~pseudostate_impl () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::vertex_impl
 vertex_impl (const std::string &_name)
 
virtual ~vertex_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual composite_stateget_root_state () SX_OVERRIDE
 
virtual const composite_stateget_root_state () const SX_OVERRIDE
 
virtual void remove_outgoing_transition (const transition &_outgoing_transition) SX_OVERRIDE
 
virtual void remove_incoming_transition (const transition &_incoming_transition) SX_OVERRIDE
 
virtual const raw_transitionsget_outgoing_transitions () const SX_OVERRIDE
 
virtual const raw_transitionsget_incoming_transitions () const SX_OVERRIDE
 
transitionsearch_transition (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
virtual regionLCA_region (const vertex &_target_vertex) const SX_OVERRIDE
 
virtual composite_stateLCA_composite_state (const vertex &_rhs) const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_machine_element_impl
 state_machine_element_impl (const std::string &_name)
 
virtual ~state_machine_element_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual const std::string & get_name () const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::transition_step
 transition_step ()
 
virtual ~transition_step () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::simple_state_base
 simple_state_base (const std::string &_name, behavior_uptr _entry_action, behavior_uptr _exit_action, const event_ids &_deferred_events, event_sptr _error_event)
 
virtual ~simple_state_base () SX_NOEXCEPT SX_OVERRIDE
 
virtual bool has_error_event () const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::simple_state
 simple_state ()
 
virtual ~simple_state () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::complex_state
 complex_state ()
 
virtual ~complex_state () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state
 state ()
 
virtual ~state () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::complex_state_impl
 complex_state_impl (const std::string &_name, behavior_uptr _entry_behavior, behavior_uptr _exit_behavior, const event_ids &_deferred_events=event_ids())
 
virtual ~complex_state_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual void add_deferred_event (const event_id &_event_id) SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_impl
 state_impl (const std::string &_name)
 
virtual ~state_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual void set_parent_region (region *const _parent_region) SX_OVERRIDE
 
virtual regionget_parent_region () const SX_OVERRIDE
 
virtual raw_composite_states get_ancestors (composite_state *const _final_ancestor, bool _include_final_ancestor=true) const SX_OVERRIDE
 
virtual raw_regions get_ancestors_as_regions () const SX_OVERRIDE
 
virtual std::size_t get_nesting_level () const SX_OVERRIDE
 
virtual void set_was_active () SX_OVERRIDE
 
virtual bool was_active () const SX_OVERRIDE
 
virtual void set_active () SX_OVERRIDE
 
virtual void set_inactive () SX_OVERRIDE
 
virtual bool is_active () const SX_OVERRIDE
 
virtual void execute_enter_behavior (const event &_event, event_collector &_event_collector) const SX_OVERRIDE
 
virtual void enter_state (const event &_event, event_collector &_event_collector) SX_OVERRIDE
 
virtual void exit_state (const event &_event, event_collector &_event_collector) SX_OVERRIDE
 
- Public Member Functions inherited from sxy::region
 region ()
 
virtual ~region () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::junction
 junction ()
 
virtual ~junction () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::join
 join ()
 
virtual ~join () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::initial_pseudostate
 initial_pseudostate ()
 
virtual ~initial_pseudostate () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::fork
 fork ()
 
virtual ~fork () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::final_state
 final_state ()
 
virtual ~final_state () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::exit_point
 exit_point ()
 
virtual ~exit_point () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_pseudostate
 state_pseudostate ()
 
virtual ~state_pseudostate () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_pseudostate_impl
 state_pseudostate_impl (const std::string &_name)
 
virtual ~state_pseudostate_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual raw_composite_states get_ancestors (composite_state *const _final_ancestor, bool _include_final_ancestor=true) const SX_OVERRIDE
 
virtual raw_regions get_ancestors_as_regions () const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::execution_step
 execution_step ()
 
virtual ~execution_step () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::entry_point
 entry_point ()
 
virtual ~entry_point () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::deep_history
 deep_history ()
 
virtual ~deep_history () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::history
 history ()
 
virtual ~history () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::history_impl
 history_impl (const std::string &_name)
 
virtual ~history_impl () SX_NOEXCEPT SX_OVERRIDE
 
virtual raw_transitions get_default_transitions () const SX_OVERRIDE
 
virtual void add_default_transition (transition &_default_transition) SX_OVERRIDE
 
virtual bool check_if_state_was_active_before () const SX_OVERRIDE
 
- Public Member Functions inherited from sxy::constraint
 constraint ()
 
virtual ~constraint () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::compound_transition
 compound_transition ()
 
virtual ~compound_transition () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::compound_transition_consumer
 compound_transition_consumer ()
 
virtual ~compound_transition_consumer () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::composite_state
 composite_state ()
 
virtual ~composite_state () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::choice
 choice ()
 
virtual ~choice () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::complex_state_visitor
 complex_state_visitor ()
 
virtual ~complex_state_visitor () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::const_vertex_visitor
 const_vertex_visitor ()
 
virtual ~const_vertex_visitor () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::behavior
 behavior ()
 
virtual ~behavior () SX_NOEXCEPT
 
- Public Member Functions inherited from sxy::transition
 transition ()
 
virtual ~transition () SX_NOEXCEPT SX_OVERRIDE
 
- Public Member Functions inherited from sxy::state_machine_base
 state_machine_base (const std::string &_name, event_processing_callback *const _event_processing_callback=SX_NULLPTR)
 Constructor. More...
 
virtual ~state_machine_base () SX_NOEXCEPT SX_OVERRIDE
 
composite_stateget_root_state () const
 Returns the root state of the state machine. Commonly used to add regions to the root state and to create transitions from and to the root state. More...
 
virtual transitionadd_transition (transition_uptr _transition)
 Add a transition to the state machine. The state machine takes ownership of the transition. More...
 
virtual transitionadd_transition (const event_id _event_id, vertex &_source, vertex &_target, const sxy::transition_kind _kind=transition_kind::EXTERNAL, const constraint_function &_guard=constraint_function(), const behavior_function &_behavior=behavior_function())
 Creates a transition with the given name, kind, event, guard and behavior between the given source and target and adds it to the state machine. More...
 
virtual transitionadd_transition (const event_ids &_event_ids, vertex &_source, vertex &_target, const sxy::transition_kind _kind=transition_kind::EXTERNAL, const constraint_function &_guard=constraint_function(), const behavior_function &_behavior=behavior_function())
 Creates a transition with the given name, kind, event, guard and behavior between the given source and target and adds it to the state machine. More...
 
virtual transitionadd_transition (const event_id _event_id, vertex &_source, vertex &_target, const constraint_function &_guard, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, event, guard between the given source and target and adds it to the state machine. No behavior is provided. More...
 
virtual transitionadd_transition (const event_ids &_event_ids, vertex &_source, vertex &_target, const constraint_function &_guard, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, events, guard between the given source and target and adds it to the state machine. No behavior is provided. More...
 
virtual transitionadd_transition (const event_id _event_id, vertex &_source, vertex &_target, const constraint_function &_guard, const behavior_function &_behavior, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, event, guard and behavior between the given source and target and adds it to the state machine. More...
 
virtual transitionadd_transition (const event_ids &_event_ids, vertex &_source, vertex &_target, const constraint_function &_guard, const behavior_function &_behavior, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, events, guard and behavior between the given source and target and adds it to the state machine. More...
 
virtual transitionadd_transition (const event_id _event_id, vertex &_source, vertex &_target, const behavior_function &_behavior, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, event and behavior between the given source and target and adds it to the state machine. No guard is provided. More...
 
virtual transitionadd_transition (const event_ids &_event_ids, vertex &_source, vertex &_target, const behavior_function &_behavior, const sxy::transition_kind _kind=transition_kind::EXTERNAL)
 Creates a transition with the given name, kind, events and behavior between the given source and target and adds it to the state machine. No guard is provided. More...
 
bool check (state_machine_defects &_defects) const
 Check the state machine for defects by checking the constraints of each component. More...
 
virtual void interrupt ()
 Set the internal flag of the state machine, to interrupt all processes inside the state machine and to stop the state machine. More...
 
virtual bool is_interrupted () const SX_OVERRIDE
 Get the internal flag of the state machine that specify if the run of state machine is interrupted. More...
 
virtual void set_behavior_of_unhandled_event_handler (const behavior_function &_behavior)
 Sets the behavior for handler of unhandled events. More...
 
virtual std::string get_name () const
 Get the name of the state machine. More...
 
- Public Member Functions inherited from sxy::event_collector
 event_collector ()
 
virtual ~event_collector () SX_NOEXCEPT
 

Static Public Member Functions

static behavior_uptr create_behavior (const behavior_function &_function)
 Creates a behavior with the given function that implements the behavior. More...
 
static constraint_uptr create (const constraint_function &_function)
 Creates a constraint with the given function that implements the constraint. More...
 
static bool process_event (const event &_event, const composite_state &_main_composite_state, event_processing_callback *const _event_processing_callback, bool &_event_is_deferred, async_event_handler *const _async_event_handler, event_collector &_event_collector, const interruptible &_interruptible, bool &_event_was_unhandled)
 
static bool start_state_machine (const composite_state &_main_composite_state, event_processing_callback *const _event_processing_callback, async_event_handler *const _async_event_handler, event_collector &_event_collector, const interruptible &_interruptible)
 
static void search_initial_transitions (const composite_state &_state, compound_transitions &_compound_transitions, event_collector &_event_collector)
 
static void search_choice_transitions (const raw_const_choices &_choices, compound_transitions &_compound_transitions, const event &_event, event_collector &_event_collector)
 

Protected Member Functions

void start_state_machine ()
 
- Protected Member Functions inherited from sxy::complex_state_impl
bool check_if_one_of_the_deferred_events_triggers_a_transition () const
 
- Protected Member Functions inherited from sxy::state_machine_base
bool run (async_event_handler *const _async_event_handler)
 Starts the state machine. More...
 
bool process_event (const event_sptr &_event, async_event_handler *const _async_event_handler)
 

Additional Inherited Members

- Static Protected Member Functions inherited from sxy::state_machine_base
static void stop_all_async_states (state &_state)
 

Constructor & Destructor Documentation

◆ ~async_simple_state_impl()

virtual sxy::SX_FINAL::~async_simple_state_impl ( )
virtual

◆ ~async_state_machine()

virtual sxy::SX_FINAL::~async_state_machine ( )
virtual

◆ ~behavior_exception()

virtual sxy::SX_FINAL::~behavior_exception ( )
virtual

◆ ~event_creation_request()

sxy::SX_FINAL::~event_creation_request ( )

◆ ~state_machine_defect()

sxy::SX_FINAL::~state_machine_defect ( )

◆ ~states_nesting_comparer()

sxy::SX_FINAL::~states_nesting_comparer ( )

◆ ~states_nesting_comparer_ascending()

sxy::SX_FINAL::~states_nesting_comparer_ascending ( )

◆ ~timed_event_creator()

sxy::SX_FINAL::~timed_event_creator ( )

◆ ~transition_impl()

virtual sxy::SX_FINAL::~transition_impl ( )
virtual

◆ ~behavior_impl()

virtual sxy::SX_FINAL::~behavior_impl ( )
virtual

◆ ~build_transition_steps_visitor()

virtual sxy::SX_FINAL::~build_transition_steps_visitor ( )
virtual

◆ ~check_if_all_incoming_transitions_sources_are_active_visitor()

virtual sxy::SX_FINAL::~check_if_all_incoming_transitions_sources_are_active_visitor ( )
virtual

◆ ~choice_impl()

virtual sxy::SX_FINAL::~choice_impl ( )
virtual

◆ ~composite_state_impl()

virtual sxy::SX_FINAL::~composite_state_impl ( )
virtual

◆ ~compound_transition_impl()

virtual sxy::SX_FINAL::~compound_transition_impl ( )
virtual

◆ ~compound_transition_step()

virtual sxy::SX_FINAL::~compound_transition_step ( )
virtual

◆ ~constraint_impl()

virtual sxy::SX_FINAL::~constraint_impl ( )
virtual

◆ ~deep_history_impl()

virtual sxy::SX_FINAL::~deep_history_impl ( )
virtual

◆ ~entry_point_impl()

virtual sxy::SX_FINAL::~entry_point_impl ( )
virtual

◆ ~execution_state_do_step()

virtual sxy::SX_FINAL::~execution_state_do_step ( )
virtual

◆ ~execution_state_enter_step()

virtual sxy::SX_FINAL::~execution_state_enter_step ( )
virtual

◆ ~execution_state_exit_step()

virtual sxy::SX_FINAL::~execution_state_exit_step ( )
virtual

◆ ~execution_transition_step()

virtual sxy::SX_FINAL::~execution_transition_step ( )
virtual

◆ ~exit_point_impl()

virtual sxy::SX_FINAL::~exit_point_impl ( )
virtual

◆ ~final_state_impl()

virtual sxy::SX_FINAL::~final_state_impl ( )
virtual

◆ ~fork_impl()

virtual sxy::SX_FINAL::~fork_impl ( )
virtual

◆ ~initial_pseudostate_impl()

virtual sxy::SX_FINAL::~initial_pseudostate_impl ( )
virtual

◆ ~join_impl()

virtual sxy::SX_FINAL::~join_impl ( )
virtual

◆ ~junction_impl()

virtual sxy::SX_FINAL::~junction_impl ( )
virtual

◆ ~region_impl()

virtual sxy::SX_FINAL::~region_impl ( )
virtual

◆ ~simple_state_impl()

virtual sxy::SX_FINAL::~simple_state_impl ( )
virtual

◆ ~simple_transition_step()

virtual sxy::SX_FINAL::~simple_transition_step ( )
virtual

◆ ~terminate_pseudostate_impl()

virtual sxy::SX_FINAL::~terminate_pseudostate_impl ( )
virtual

◆ ~transition_controller()

sxy::SX_FINAL::~transition_controller ( )

◆ ~transition_executor()

sxy::SX_FINAL::~transition_executor ( )

◆ ~transition_finder()

sxy::SX_FINAL::~transition_finder ( )

◆ ~transition_priority()

sxy::SX_FINAL::~transition_priority ( )

Member Function Documentation

◆ accept() [1/4]

virtual void sxy::SX_FINAL::accept ( execution_step_visitor _visitor) const
virtual

Implements sxy::execution_step.

◆ accept() [2/4]

virtual void sxy::SX_FINAL::accept ( execution_step_visitor _visitor) const
virtual

Implements sxy::execution_step.

◆ accept() [3/4]

virtual void sxy::SX_FINAL::accept ( execution_step_visitor _visitor) const
virtual

Implements sxy::execution_step.

◆ accept() [4/4]

virtual void sxy::SX_FINAL::accept ( execution_step_visitor _visitor) const
virtual

Implements sxy::execution_step.

◆ accept_complex_state_visitor()

virtual void sxy::SX_FINAL::accept_complex_state_visitor ( complex_state_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_pseudostate_visitor() [1/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [2/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [3/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [4/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [5/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [6/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [7/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [8/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_pseudostate_visitor() [9/9]

virtual void sxy::SX_FINAL::accept_pseudostate_visitor ( pseudostate_visitor _visitor) const
virtual

Implements sxy::pseudostate.

◆ accept_state_visitor() [1/2]

virtual void sxy::SX_FINAL::accept_state_visitor ( state_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_state_visitor() [2/2]

virtual void sxy::SX_FINAL::accept_state_visitor ( state_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [1/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [2/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [3/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [4/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [5/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [6/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [7/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [8/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [9/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [10/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [11/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [12/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [13/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [14/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [15/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [16/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [17/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [18/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [19/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [20/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [21/22]

virtual void sxy::SX_FINAL::accept_vertex_visitor ( const_vertex_visitor _visitor) const
virtual

Reimplemented from sxy::simple_state_base.

◆ accept_vertex_visitor() [22/22]

void sxy::SX_FINAL::accept_vertex_visitor ( vertex_visitor _visitor)
virtual

Reimplemented from sxy::simple_state_base.

◆ add_ancestor_uri() [1/2]

virtual void sxy::SX_FINAL::add_ancestor_uri ( sxe::uri &  _uri) const
virtual

◆ add_ancestor_uri() [2/2]

void sxy::SX_FINAL::add_ancestor_uri ( sxe::uri &  _uri) const
virtual

◆ add_async_simple_state()

virtual simple_state& sxy::SX_FINAL::add_async_simple_state ( const std::string &  _async_simple_state_name,
const event_ids _deferred_events,
async_behavior_uptr  _do_action = async_behavior_uptr(),
const behavior_function _entry_behavior = behavior_function(),
const behavior_function _exit_behavior = behavior_function(),
event_sptr  _error_event = event_sptr() 
)
virtual

Implements sxy::region.

◆ add_choice() [1/2]

virtual choice& sxy::SX_FINAL::add_choice ( choice_uptr  _choice)
virtual

Implements sxy::region.

◆ add_choice() [2/2]

virtual choice& sxy::SX_FINAL::add_choice ( const std::string &  _choice_name)
virtual

Creates a choice with the given name and adds it to the parent region.

Parameters
_choice_nameName of the choice.
Returns
A reference to the newly created choice.

Implements sxy::region.

◆ add_composite_state() [1/2]

virtual composite_state& sxy::SX_FINAL::add_composite_state ( const std::string &  _composite_state_name,
const behavior_function _entry_action = behavior_function(),
const behavior_function _exit_action = behavior_function() 
)
virtual

Implements sxy::region.

◆ add_composite_state() [2/2]

virtual composite_state& sxy::SX_FINAL::add_composite_state ( const std::string &  _composite_state_name,
const event_ids _deferred_events,
const behavior_function _entry_action = behavior_function(),
const behavior_function _exit_action = behavior_function() 
)
virtual

Implements sxy::region.

◆ add_deep_history() [1/2]

virtual deep_history& sxy::SX_FINAL::add_deep_history ( deep_history_uptr  _deep_history)
virtual

Implements sxy::composite_state.

◆ add_deep_history() [2/2]

virtual deep_history& sxy::SX_FINAL::add_deep_history ( const std::string &  _deep_history_name)
virtual

Creates a deep history with the given name and adds it to the parent composite state.

Parameters
_deep_history_nameName of the deep history.
Returns
A reference to the newly created deep history.

Implements sxy::composite_state.

◆ add_entry_point() [1/2]

virtual entry_point& sxy::SX_FINAL::add_entry_point ( entry_point_uptr  _entry_point)
virtual

Implements sxy::composite_state.

◆ add_entry_point() [2/2]

virtual entry_point& sxy::SX_FINAL::add_entry_point ( const std::string &  _entry_point_name)
virtual

Creates an entry point with the given name and adds it to the parent composite state.

Parameters
_entry_point_nameName of the entry point.
Returns
A reference to the newly created entry point.

Implements sxy::composite_state.

◆ add_exit_point() [1/2]

virtual exit_point& sxy::SX_FINAL::add_exit_point ( exit_point_uptr  _exit_point)
virtual

Implements sxy::composite_state.

◆ add_exit_point() [2/2]

virtual exit_point& sxy::SX_FINAL::add_exit_point ( const std::string &  _exit_point_name)
virtual

Creates an exit point with the given name and adds it to the parent composite state.

Parameters
_exit_point_nameName of the exit point.
Returns
A reference to the newly created exit point.

Implements sxy::composite_state.

◆ add_final_state()

virtual final_state& sxy::SX_FINAL::add_final_state ( const std::string &  _name)
virtual

Implements sxy::region.

◆ add_fork() [1/2]

virtual fork& sxy::SX_FINAL::add_fork ( fork_uptr  _fork)
virtual

Implements sxy::region.

◆ add_fork() [2/2]

virtual fork& sxy::SX_FINAL::add_fork ( const std::string &  _fork_name)
virtual

Creates a fork with the given name and adds it to the parent region.

Parameters
_fork_nameName of the fork.
Returns
A reference to the newly created fork.

Implements sxy::region.

◆ add_incoming_transition() [1/2]

virtual void sxy::SX_FINAL::add_incoming_transition ( transition _incoming_transition)
virtual

Reimplemented from sxy::vertex_impl.

◆ add_incoming_transition() [2/2]

virtual void sxy::SX_FINAL::add_incoming_transition ( transition _incoming_transition)
virtual

Reimplemented from sxy::vertex_impl.

◆ add_initial_pseudostate() [1/2]

virtual initial_pseudostate& sxy::SX_FINAL::add_initial_pseudostate ( initial_pseudostate_uptr  _initial_state)
virtual

Implements sxy::region.

◆ add_initial_pseudostate() [2/2]

virtual initial_pseudostate& sxy::SX_FINAL::add_initial_pseudostate ( const std::string &  _initial_state_name)
virtual

Creates an initial pseudostate with the given name and adds it to the parent region.

Parameters
_initial_state_nameName of the initial pseudostate.
Returns
A reference to the newly created initial pseudostate.

Implements sxy::region.

◆ add_join() [1/2]

virtual join& sxy::SX_FINAL::add_join ( join_uptr  _join)
virtual

Implements sxy::region.

◆ add_join() [2/2]

virtual join& sxy::SX_FINAL::add_join ( const std::string &  _join_name)
virtual

Creates a join with the given name and adds it to the parent region.

Parameters
_join_nameName of the join.
Returns
A reference to the newly created join.

Implements sxy::region.

◆ add_junction() [1/2]

virtual junction& sxy::SX_FINAL::add_junction ( junction_uptr  _junction)
virtual

Implements sxy::region.

◆ add_junction() [2/2]

virtual junction& sxy::SX_FINAL::add_junction ( const std::string &  _junction_name)
virtual

Creates a junction with the given name and adds it to the parent region.

Parameters
_junction_nameName of the junction.
Returns
A reference to the newly created junction.

Implements sxy::region.

◆ add_outgoing_transition() [1/2]

virtual void sxy::SX_FINAL::add_outgoing_transition ( transition _outgoing_transition)
virtual

Reimplemented from sxy::vertex_impl.

◆ add_outgoing_transition() [2/2]

virtual void sxy::SX_FINAL::add_outgoing_transition ( transition _outgoing_transition)
virtual

Reimplemented from sxy::vertex_impl.

◆ add_region() [1/2]

virtual region& sxy::SX_FINAL::add_region ( region_uptr  _region)
virtual

Implements sxy::composite_state.

◆ add_region() [2/2]

virtual region& sxy::SX_FINAL::add_region ( const std::string &  _region_name)
virtual

Creates a region with the given name and adds it to the parent composite state.

Parameters
_region_nameName of the region.
Returns
A reference to the newly created final state.

Implements sxy::composite_state.

◆ add_shallow_history() [1/2]

virtual shallow_history& sxy::SX_FINAL::add_shallow_history ( shallow_history_uptr  _shallow_history)
virtual

Implements sxy::composite_state.

◆ add_shallow_history() [2/2]

virtual shallow_history& sxy::SX_FINAL::add_shallow_history ( const std::string &  _shallow_history_name)
virtual

Creates a shallow history with the given name and adds it to the parent composite state.

Parameters
_shallow_history_nameName of the shallow history.
Returns
A reference to the newly created shallow history.

Implements sxy::composite_state.

◆ add_simple_state() [1/2]

virtual simple_state& sxy::SX_FINAL::add_simple_state ( const std::string &  _simple_state_name,
const behavior_function _behavior = behavior_function(),
const behavior_function _entry_behavior = behavior_function(),
const behavior_function _exit_behavior = behavior_function() 
)
virtual

Implements sxy::region.

◆ add_simple_state() [2/2]

virtual simple_state& sxy::SX_FINAL::add_simple_state ( const std::string &  _simple_state_name,
const event_ids _deferred_events,
const behavior_function _behavior = behavior_function(),
const behavior_function _entry_behavior = behavior_function(),
const behavior_function _exit_behavior = behavior_function(),
event_sptr  _error_event = event_sptr() 
)
virtual

Implements sxy::region.

◆ add_state()

virtual state& sxy::SX_FINAL::add_state ( state_uptr  _state)
virtual

Implements sxy::region.

◆ add_sub_compound_transition()

virtual void sxy::SX_FINAL::add_sub_compound_transition ( compound_transition_uptr  _sub_compound_transition)
virtual

◆ add_terminate_pseudostate() [1/2]

virtual terminate_pseudostate& sxy::SX_FINAL::add_terminate_pseudostate ( terminate_pseudostate_uptr  _terminate_pseudostate)
virtual

Implements sxy::region.

◆ add_terminate_pseudostate() [2/2]

virtual terminate_pseudostate& sxy::SX_FINAL::add_terminate_pseudostate ( const std::string &  _terminate_pseudostate_name)
virtual

Creates a terminate pseudostate with the given name and adds it to the parent region.

Parameters
_terminate_pseudostate_nameName of the terminate pseudostate.
Returns
A reference to the newly created terminate pseudostate.

Implements sxy::region.

◆ async_simple_state_impl()

sxy::SX_FINAL::async_simple_state_impl ( const std::string &  _name,
async_behavior_uptr  _do_action,
behavior_uptr  _entry_action = behavior_uptr(),
behavior_uptr  _exit_action = behavior_uptr(),
const event_ids _deferred_events = event_ids(),
event_sptr  _error_event = event_sptr() 
)
explicit

◆ async_state_machine()

sxy::SX_FINAL::async_state_machine ( const std::string &  _name,
event_processing_callback *const  _event_processing_callback = SX_NULLPTR 
)
explicit

Constructor.

Parameters
_nameName of the state machine.
_event_processing_callbackEvent processing callback interface pointer. It can be a nullptr if no callback interface should be used.

◆ behavior_exception()

sxy::SX_FINAL::behavior_exception ( const event_sptr _event)
explicit

◆ behavior_impl()

sxy::SX_FINAL::behavior_impl ( const behavior_function _function)
explicit

◆ build_transition_steps_visitor()

sxy::SX_FINAL::build_transition_steps_visitor ( transition _current_transition,
transition_steps _transitions_steps,
const event _event,
event_collector _event_collector 
)

◆ can_accept_event()

virtual bool sxy::SX_FINAL::can_accept_event ( const event_id  _event) const
virtual

Implements sxy::transition.

◆ cancel()

bool sxy::SX_FINAL::cancel ( const handle_type  _handle)

Cancels the event creation request with the given handle if the event is still in the queue of the event creator.

Parameters
_handleconst handle_type Handle of the event creation request that should be canceled.
Returns
true if the event was canceled or false if the event could not be canceled.
See also
create()

◆ check() [1/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [2/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [3/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [4/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [5/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [6/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [7/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [8/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [9/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [10/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [11/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [12/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check() [13/13]

virtual bool sxy::SX_FINAL::check ( state_machine_defects _defects) const
virtual

Implements sxy::region.

◆ check_guard()

virtual bool sxy::SX_FINAL::check_guard ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::transition.

◆ check_if_all_incoming_transitions_sources_are_active_visitor()

sxy::SX_FINAL::check_if_all_incoming_transitions_sources_are_active_visitor ( )

◆ check_if_all_source_states_of_incoming_transitions_are_active()

virtual bool sxy::SX_FINAL::check_if_all_source_states_of_incoming_transitions_are_active ( ) const
virtual

Implements sxy::join.

◆ check_if_starts_with()

virtual bool sxy::SX_FINAL::check_if_starts_with ( const transition _incoming_transition)
virtual

◆ check_sort_and_execute_transitions()

bool sxy::SX_FINAL::check_sort_and_execute_transitions ( const compound_transitions _compound_transitions,
raw_const_choices _verices,
event_processing_callback *const  _event_processing_callback,
const event _event,
events _exception_events,
async_event_handler *const  _async_event_handler,
event_collector _event_collector,
const interruptible _interruptible 
)

◆ choice_impl()

sxy::SX_FINAL::choice_impl ( const std::string &  _name)
explicit

◆ composite_state_impl()

sxy::SX_FINAL::composite_state_impl ( const std::string &  _name,
behavior_uptr  _entry_action = behavior_uptr(),
behavior_uptr  _exit_action = behavior_uptr(),
const event_ids _deferred_events = event_ids() 
)
explicit

◆ compound_transition_impl()

sxy::SX_FINAL::compound_transition_impl ( )

◆ compound_transition_step()

sxy::SX_FINAL::compound_transition_step ( const raw_transitions _transition_step)
explicit

◆ constraint_impl()

sxy::SX_FINAL::constraint_impl ( const constraint_function _function)
explicit

◆ create()

static constraint_uptr sxy::SX_FINAL::create ( const constraint_function _function)
static

Creates a constraint with the given function that implements the constraint.

Parameters
_functionFunction that implements the constraint.
Returns
A unique pointer to the created constraint.

◆ create_and_check_transition_path()

virtual bool sxy::SX_FINAL::create_and_check_transition_path ( transition _start_transition,
const event _event,
event_collector _event_collector 
)
virtual

◆ create_behavior()

static behavior_uptr sxy::SX_FINAL::create_behavior ( const behavior_function _function)
static

Creates a behavior with the given function that implements the behavior.

Parameters
_functionFunction that implements the behavior.
Returns
A unique pointer to the created behavior.

◆ create_event_creation_request() [1/2]

handle_type sxy::SX_FINAL::create_event_creation_request ( const sxe::time_point< sxe::system_clock > &  _time_till_event_is_fired,
const event_sptr  _event 
)

Creates an event creation request.

Parameters
_time_till_event_is_firedThe time point when the event should be fired.
_eventThe event that will be fired.
Returns
Handle of the new event creation request. The handle can be used for canceling the request.
See also
cancel()

◆ create_event_creation_request() [2/2]

handle_type sxy::SX_FINAL::create_event_creation_request ( const sxe::milliseconds &  _time,
const event_sptr _event 
)

Creates an event creation request.

Parameters
_timeThe time duration after that the event should be fired.
_eventThe event that will be fired.
Returns
Handle of the new event creation request. The handle can be used for canceling the request.
See also
cancel()

◆ deep_history_impl()

sxy::SX_FINAL::deep_history_impl ( const std::string &  _name)
explicit

◆ entry_point_impl()

sxy::SX_FINAL::entry_point_impl ( const std::string &  _name)
explicit

◆ event_creation_request() [1/2]

sxy::SX_FINAL::event_creation_request ( const sxe::time_point< sxe::system_clock > &  _time,
const event_sptr  _event,
const handle_type  _handle 
)

◆ event_creation_request() [2/2]

sxy::SX_FINAL::event_creation_request ( event_creation_request &&  )

◆ execute_behavior() [1/4]

virtual bool sxy::SX_FINAL::execute_behavior ( event_processing_callback *const  _event_processing_callback,
const event _event,
events _exception_events,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Implements sxy::execution_step.

◆ execute_behavior() [2/4]

virtual bool sxy::SX_FINAL::execute_behavior ( event_processing_callback *const  _event_processing_callback,
const event _event,
events _exception_events,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Implements sxy::execution_step.

◆ execute_behavior() [3/4]

virtual bool sxy::SX_FINAL::execute_behavior ( event_processing_callback *const  _event_processing_callback,
const event _event,
events _exception_events,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Implements sxy::execution_step.

◆ execute_behavior() [4/4]

virtual bool sxy::SX_FINAL::execute_behavior ( event_processing_callback *const  _event_processing_callback,
const event _event,
events _exception_events,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Implements sxy::execution_step.

◆ execute_do_behavior() [1/2]

void sxy::SX_FINAL::execute_do_behavior ( const event _event,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Reimplemented from sxy::state_impl.

◆ execute_do_behavior() [2/2]

void sxy::SX_FINAL::execute_do_behavior ( const event _event,
async_event_handler *const  _async_event_handler,
event_collector _event_collector 
) const
virtual

Reimplemented from sxy::state_impl.

◆ execute_exit_behavior()

void sxy::SX_FINAL::execute_exit_behavior ( const event _event,
event_collector _event_collector 
) const
virtual

Reimplemented from sxy::state_impl.

◆ execute_transition_behaviors() [1/2]

void sxy::SX_FINAL::execute_transition_behaviors ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::transition_step.

◆ execute_transition_behaviors() [2/2]

void sxy::SX_FINAL::execute_transition_behaviors ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::transition_step.

◆ execution_state_do_step()

sxy::SX_FINAL::execution_state_do_step ( const state _state)
explicit

◆ execution_state_enter_step()

sxy::SX_FINAL::execution_state_enter_step ( state _state)
explicit

◆ execution_state_exit_step()

sxy::SX_FINAL::execution_state_exit_step ( state _state)
explicit

◆ execution_transition_step()

sxy::SX_FINAL::execution_transition_step ( transition_step _transition_step)
explicit

◆ exit_point_impl()

sxy::SX_FINAL::exit_point_impl ( const std::string &  _name)
explicit

◆ final_state_impl()

sxy::SX_FINAL::final_state_impl ( const std::string &  _name)
explicit

◆ fire_event()

virtual bool sxy::SX_FINAL::fire_event ( const event_sptr _event)
virtual

Enqueue the given event for firing.

Parameters
_eventEvent to be fired.
Returns
true if event was successfully enqueued for firing, else false. It returns false if the enqueue for firing of the event is not possible because the state machine was stopped in the meantime (or was never started). Firing the event enqueues the event for being processed.

Implements sxy::state_machine_base.

◆ fork_impl()

sxy::SX_FINAL::fork_impl ( const std::string &  _name)
explicit

◆ get_active_state() [1/2]

virtual const state* sxy::SX_FINAL::get_active_state ( ) const
virtual

Implements sxy::region.

◆ get_active_state() [2/2]

virtual state* sxy::SX_FINAL::get_active_state ( )
virtual

Implements sxy::region.

◆ get_behavior()

virtual const behavior* sxy::SX_FINAL::get_behavior ( ) const
virtual

Implements sxy::transition.

◆ get_compound_transition()

compound_transition& sxy::SX_FINAL::get_compound_transition ( ) const

◆ get_deep_history()

virtual const deep_history* sxy::SX_FINAL::get_deep_history ( ) const
virtual

Implements sxy::composite_state.

◆ get_element()

const state_machine_element& sxy::SX_FINAL::get_element ( ) const

◆ get_entry_behavior()

virtual behavior* sxy::SX_FINAL::get_entry_behavior ( ) const
virtual

Reimplemented from sxy::complex_state_impl.

◆ get_entry_point() [1/2]

virtual const entry_point* sxy::SX_FINAL::get_entry_point ( ) const
virtual

Implements sxy::transition_step.

◆ get_entry_point() [2/2]

virtual const entry_point* sxy::SX_FINAL::get_entry_point ( ) const
virtual

Implements sxy::transition_step.

◆ get_entry_points()

virtual const raw_const_entry_points sxy::SX_FINAL::get_entry_points ( ) const
virtual

Implements sxy::composite_state.

◆ get_error_event()

const event_sptr sxy::SX_FINAL::get_error_event ( ) const
virtual

Reimplemented from sxy::simple_state_base.

◆ get_event()

event_sptr sxy::SX_FINAL::get_event ( ) const

◆ get_exit_behavior()

virtual behavior* sxy::SX_FINAL::get_exit_behavior ( ) const
virtual

Reimplemented from sxy::complex_state_impl.

◆ get_exit_point() [1/2]

virtual const exit_point* sxy::SX_FINAL::get_exit_point ( ) const
virtual

Implements sxy::transition_step.

◆ get_exit_point() [2/2]

virtual const exit_point* sxy::SX_FINAL::get_exit_point ( ) const
virtual

Implements sxy::transition_step.

◆ get_exit_points()

virtual const raw_const_exit_points sxy::SX_FINAL::get_exit_points ( ) const
virtual

Implements sxy::composite_state.

◆ get_guard()

virtual const constraint* sxy::SX_FINAL::get_guard ( ) const
virtual

Implements sxy::transition.

◆ get_handle()

handle_type sxy::SX_FINAL::get_handle ( ) const

◆ get_initial_pseudostate()

virtual initial_pseudostate* sxy::SX_FINAL::get_initial_pseudostate ( ) const
virtual

Implements sxy::region.

◆ get_kind()

virtual sxy::transition_kind sxy::SX_FINAL::get_kind ( ) const
virtual

Implements sxy::transition.

◆ get_last_active_state() [1/2]

virtual const state* sxy::SX_FINAL::get_last_active_state ( ) const
virtual

Implements sxy::region.

◆ get_last_active_state() [2/2]

virtual state* sxy::SX_FINAL::get_last_active_state ( )
virtual

Implements sxy::region.

◆ get_last_target()

virtual const vertex& sxy::SX_FINAL::get_last_target ( ) const
virtual

◆ get_LCA_composite_state()

virtual composite_state* sxy::SX_FINAL::get_LCA_composite_state ( )
virtual

◆ get_LCA_region()

virtual region* sxy::SX_FINAL::get_LCA_region ( )
virtual

◆ get_message()

const std::string& sxy::SX_FINAL::get_message ( ) const

◆ get_next_transition()

transition* sxy::SX_FINAL::get_next_transition ( ) const

◆ get_parent() [1/2]

virtual const state_machine_element* sxy::SX_FINAL::get_parent ( ) const
virtual

Reimplemented from sxy::state_impl.

◆ get_parent() [2/2]

virtual const state_machine_element* sxy::SX_FINAL::get_parent ( ) const
virtual

Reimplemented from sxy::state_impl.

◆ get_parent_region_index()

virtual size_t sxy::SX_FINAL::get_parent_region_index ( ) const
virtual

Reimplemented from sxy::state_impl.

◆ get_parent_state() [1/2]

virtual const composite_state& sxy::SX_FINAL::get_parent_state ( ) const
virtual

Implements sxy::region.

◆ get_parent_state() [2/2]

virtual composite_state& sxy::SX_FINAL::get_parent_state ( )
virtual

Implements sxy::region.

◆ get_priority()

std::size_t sxy::SX_FINAL::get_priority ( ) const

◆ get_pseudostate() [1/2]

virtual vertex* sxy::SX_FINAL::get_pseudostate ( const std::string &  _name) const
virtual

Implements sxy::region.

◆ get_pseudostate() [2/2]

virtual vertex* sxy::SX_FINAL::get_pseudostate ( const std::string &  _name_of_pseudostate) const
virtual

Implements sxy::region.

◆ get_pseudostate_count()

virtual size_t sxy::SX_FINAL::get_pseudostate_count ( ) const
virtual

Implements sxy::region.

◆ get_pseudostates()

virtual raw_const_pseudostates sxy::SX_FINAL::get_pseudostates ( ) const
virtual

Implements sxy::region.

◆ get_region()

virtual region* sxy::SX_FINAL::get_region ( const std::string &  _region_name) const
virtual

Reimplemented from sxy::state_impl.

◆ get_region_index()

virtual size_t sxy::SX_FINAL::get_region_index ( const region *const  _region) const
virtual

Implements sxy::composite_state.

◆ get_regions() [1/4]

virtual const regions& sxy::SX_FINAL::get_regions ( ) const
virtual

Reimplemented from sxy::simple_state_base.

◆ get_regions() [2/4]

virtual regions& sxy::SX_FINAL::get_regions ( )
virtual

Reimplemented from sxy::simple_state_base.

◆ get_regions() [3/4]

virtual const regions& sxy::SX_FINAL::get_regions ( ) const
virtual

Reimplemented from sxy::simple_state_base.

◆ get_regions() [4/4]

virtual regions& sxy::SX_FINAL::get_regions ( )
virtual

Reimplemented from sxy::simple_state_base.

◆ get_result()

bool sxy::SX_FINAL::get_result ( ) const

◆ get_shallow_history()

virtual shallow_history* sxy::SX_FINAL::get_shallow_history ( ) const
virtual

Implements sxy::composite_state.

◆ get_source()

virtual const vertex& sxy::SX_FINAL::get_source ( ) const
virtual

Implements sxy::transition.

◆ get_state() [1/4]

const state& sxy::SX_FINAL::get_state ( ) const

◆ get_state() [2/4]

const state& sxy::SX_FINAL::get_state ( ) const

◆ get_state() [3/4]

const state& sxy::SX_FINAL::get_state ( ) const

◆ get_state() [4/4]

virtual state* sxy::SX_FINAL::get_state ( const std::string &  _name) const
virtual

Implements sxy::region.

◆ get_state_count()

virtual size_t sxy::SX_FINAL::get_state_count ( ) const
virtual

Implements sxy::region.

◆ get_states()

virtual raw_const_states sxy::SX_FINAL::get_states ( ) const
virtual

Implements sxy::region.

◆ get_sub_compound_transitions()

virtual const compound_transitions& sxy::SX_FINAL::get_sub_compound_transitions ( ) const
virtual

◆ get_target() [1/2]

virtual const vertex& sxy::SX_FINAL::get_target ( ) const
virtual

Implements sxy::transition.

◆ get_target() [2/2]

virtual vertex& sxy::SX_FINAL::get_target ( )
virtual

Implements sxy::transition.

◆ get_target_vertices() [1/2]

virtual const raw_const_vertices sxy::SX_FINAL::get_target_vertices ( )
virtual

Implements sxy::transition_step.

◆ get_target_vertices() [2/2]

virtual const raw_const_vertices sxy::SX_FINAL::get_target_vertices ( )
virtual

Implements sxy::transition_step.

◆ get_time()

sxe::time_point< sxe::system_clock > sxy::SX_FINAL::get_time ( ) const

◆ get_transition()

virtual transition* sxy::SX_FINAL::get_transition ( ) const
virtual

◆ get_transition_kind()

virtual transition_kind sxy::SX_FINAL::get_transition_kind ( )
virtual

◆ get_transition_step()

const transition_step& sxy::SX_FINAL::get_transition_step ( ) const

◆ get_transition_steps()

virtual transition_steps& sxy::SX_FINAL::get_transition_steps ( )
virtual

◆ get_transitions() [1/2]

virtual const raw_transitions& sxy::SX_FINAL::get_transitions ( ) const
virtual

Implements sxy::transition_step.

◆ get_transitions() [2/2]

virtual const raw_transitions& sxy::SX_FINAL::get_transitions ( ) const
virtual

Implements sxy::transition_step.

◆ get_unique_source() [1/2]

virtual const vertex& sxy::SX_FINAL::get_unique_source ( ) const
virtual

Implements sxy::transition_step.

◆ get_unique_source() [2/2]

virtual const vertex& sxy::SX_FINAL::get_unique_source ( ) const
virtual

Implements sxy::transition_step.

◆ get_unique_target() [1/2]

virtual const vertex& sxy::SX_FINAL::get_unique_target ( ) const
virtual

Implements sxy::transition_step.

◆ get_unique_target() [2/2]

virtual const vertex& sxy::SX_FINAL::get_unique_target ( ) const
virtual

Implements sxy::transition_step.

◆ get_uri() [1/2]

virtual sxe::uri sxy::SX_FINAL::get_uri ( ) const
virtual

◆ get_uri() [2/2]

sxe::uri sxy::SX_FINAL::get_uri ( ) const
virtual

◆ get_vertex()

virtual vertex* sxy::SX_FINAL::get_vertex ( const std::string &  _vertex_name) const
virtual

Implements sxy::region.

◆ halt() [1/2]

virtual void sxy::SX_FINAL::halt ( )
virtual

Stops the state machine. When stopping the state machine, all the events remaining in the queue of events will be processed and the event processing thread will be then stopped and joined. The state machine will also check for active asynchronous simple states and will stop the do behavior for all of them.

Returns
void
See also
halt_and_join, join, run

Reimplemented from sxy::state_machine_base.

◆ halt() [2/2]

void sxy::SX_FINAL::halt ( )
virtual

Stops the event creator. The event creator needs to be stopped before it is destroyed (if it was started). Else the internal thread is not cleaned-up correctly.

Returns
void
See also
run(), join(), halt_and_join()

Reimplemented from sxy::state_machine_base.

◆ halt_and_join() [1/2]

void sxy::SX_FINAL::halt_and_join ( )

Stops and joins the state machine. When stopping the state machine, all the events remaining in the queue of events will be processed and the event processing thread will be then stopped and joined. The state machine will also check for active asynchronous simple states and will stop the do behavior for all of them.

Returns
void
See also
halt, join, run

◆ halt_and_join() [2/2]

void sxy::SX_FINAL::halt_and_join ( )

Stops and joins the event creator thread. The event creator needs to be stopped before it is destroyed (if it was started). Else the internal thread is not cleaned-up correctly.

Returns
void
See also
run(), join(), halt()

◆ initial_pseudostate_impl()

sxy::SX_FINAL::initial_pseudostate_impl ( const std::string &  _name)
explicit

◆ is_active_state_final()

virtual bool sxy::SX_FINAL::is_active_state_final ( ) const
virtual

Implements sxy::region.

◆ is_complete()

bool sxy::SX_FINAL::is_complete ( ) const
virtual

Reimplemented from sxy::state_impl.

◆ is_event_deferred()

virtual bool sxy::SX_FINAL::is_event_deferred ( const event_id _event_id) const
virtual

Reimplemented from sxy::complex_state_impl.

◆ is_orthogonal()

virtual bool sxy::SX_FINAL::is_orthogonal ( ) const
virtual

Implements sxy::composite_state.

◆ join() [1/2]

void sxy::SX_FINAL::join ( )

Joins the thread of the state machine.

Returns
void
See also
halt_and_join, halt, run

◆ join() [2/2]

void sxy::SX_FINAL::join ( )

Joins the event creator thread.

Returns
void
See also
run(), stop(), halt_and_join()

◆ join_impl()

sxy::SX_FINAL::join_impl ( const std::string &  _name)
explicit

◆ junction_impl()

sxy::SX_FINAL::junction_impl ( const std::string &  _name)
explicit

◆ on_transition_behavior()

virtual void sxy::SX_FINAL::on_transition_behavior ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::transition.

◆ operator()() [1/6]

virtual bool sxy::SX_FINAL::operator() ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::behavior.

◆ operator()() [2/6]

bool sxy::SX_FINAL::operator() ( const state _lhs,
const state _rhs 
) const

◆ operator()() [3/6]

bool sxy::SX_FINAL::operator() ( const state _lhs,
const state _rhs 
) const

◆ operator()() [4/6]

bool sxy::SX_FINAL::operator() ( const state *const  _lhs,
const state *const  _rhs 
) const

◆ operator()() [5/6]

bool sxy::SX_FINAL::operator() ( const state *const  _lhs,
const state *const  _rhs 
) const

◆ operator()() [6/6]

virtual void sxy::SX_FINAL::operator() ( const event _event,
event_collector _event_collector 
) const
virtual

Implements sxy::behavior.

◆ operator<()

bool sxy::SX_FINAL::operator< ( const transition_priority _compare_member) const

◆ operator=()

event_creation_request& sxy::SX_FINAL::operator= ( event_creation_request &&  )

◆ process_event()

static bool sxy::SX_FINAL::process_event ( const event _event,
const composite_state _main_composite_state,
event_processing_callback *const  _event_processing_callback,
bool &  _event_is_deferred,
async_event_handler *const  _async_event_handler,
event_collector _event_collector,
const interruptible _interruptible,
bool &  _event_was_unhandled 
)
static

◆ push()

virtual bool sxy::SX_FINAL::push ( const event_sptr _event)
virtual

Enqueue the given event for firing.

Parameters
_eventEvent to be fired.
Returns
true if event was successfully enqueued for firing, else false. It returns false if the enqueue for firing of the event is not possible because the state machine was stopped in the meantime (or was never started). Firing the event enqueues the event for being processed.

Implements sxy::event_collector.

◆ reached_end_of_transition()

bool sxy::SX_FINAL::reached_end_of_transition ( ) const

◆ region_impl()

sxy::SX_FINAL::region_impl ( const std::string &  _name)
explicit

◆ run() [1/2]

virtual bool sxy::SX_FINAL::run ( )
virtual

Starts the state machine. When starting the state machine, the initial transitions are searched and executed. Without running the state machine, it is not possible to fire events.

Returns
If the state machine reaches a terminate pseudostate after starting (on calling run), returns false. Else if the state machine is started and running, returns true.
See also
halt_and_join, halt, join

Implements sxy::state_machine_base.

◆ run() [2/2]

void sxy::SX_FINAL::run ( )
virtual

Starts the event creator. This has to be called before creating timed events.

Returns
void
See also
halt(), join(), halt_and_join()

Implements sxy::state_machine_base.

◆ search_choice_transitions()

static void sxy::SX_FINAL::search_choice_transitions ( const raw_const_choices _choices,
compound_transitions _compound_transitions,
const event _event,
event_collector _event_collector 
)
static

◆ search_for_enabled_completion_transitions_in_all_regions()

void sxy::SX_FINAL::search_for_enabled_completion_transitions_in_all_regions ( const state _current_state,
compound_transitions _enabled_compound_transitions,
bool &  _event_is_deferred,
event_collector _event_collector 
) const

◆ search_for_enabled_transitions_in_all_regions()

void sxy::SX_FINAL::search_for_enabled_transitions_in_all_regions ( const state _current_state,
const event _event,
compound_transitions _enabled_compound_transitions,
bool &  _event_is_deferred,
event_collector _event_collector 
) const

◆ search_initial_transitions()

static void sxy::SX_FINAL::search_initial_transitions ( const composite_state _state,
compound_transitions _compound_transitions,
event_collector _event_collector 
)
static

◆ set_active_state()

virtual void sxy::SX_FINAL::set_active_state ( state *const  _active_state)
virtual

Implements sxy::region.

◆ set_parent_state()

void sxy::SX_FINAL::set_parent_state ( composite_state *const  _composite_state)
virtual

Implements sxy::region.

◆ set_state_was_active()

virtual void sxy::SX_FINAL::set_state_was_active ( state *const  _active_state)
virtual

Implements sxy::region.

◆ simple_state_impl()

sxy::SX_FINAL::simple_state_impl ( const std::string &  _name,
behavior_uptr  do_action = behavior_uptr(),
behavior_uptr  _entry_action = behavior_uptr(),
behavior_uptr  _exit_action = behavior_uptr(),
const event_ids _deferred_events = event_ids(),
event_sptr  _error_event = event_sptr() 
)
explicit

◆ simple_transition_step()

sxy::SX_FINAL::simple_transition_step ( transition _transition)
explicit

◆ start_state_machine() [1/2]

static bool sxy::SX_FINAL::start_state_machine ( const composite_state _main_composite_state,
event_processing_callback *const  _event_processing_callback,
async_event_handler *const  _async_event_handler,
event_collector _event_collector,
const interruptible _interruptible 
)
static

◆ start_state_machine() [2/2]

void sxy::SX_FINAL::start_state_machine ( )
protected

◆ state_machine_defect()

template<typename ... args>
sxy::SX_FINAL::state_machine_defect ( const state_machine_element _element,
const std::string &  _message,
args ...  _args 
)
inline

◆ states_nesting_comparer()

sxy::SX_FINAL::states_nesting_comparer ( )

◆ states_nesting_comparer_ascending()

sxy::SX_FINAL::states_nesting_comparer_ascending ( )

◆ stop_do_behavior()

void sxy::SX_FINAL::stop_do_behavior ( ) const

◆ terminate_pseudostate_impl()

sxy::SX_FINAL::terminate_pseudostate_impl ( const std::string &  _name)
explicit

◆ terminated()

bool sxy::SX_FINAL::terminated ( ) const

Check if the state machine is terminated or stopped.

Returns
bool true if the state machine is terminated or stopped, false otherwise.
See also
halt_and_join, halt, run, wait

◆ timed_event_creator()

sxy::SX_FINAL::timed_event_creator ( async_state_machine _async_state_machine)
explicit

Constructor.

Parameters
_async_state_machine- state_machine the created events are sent to.

◆ transition_controller()

sxy::SX_FINAL::transition_controller ( )

◆ transition_executor()

sxy::SX_FINAL::transition_executor ( )

◆ transition_finder()

sxy::SX_FINAL::transition_finder ( )

◆ transition_impl() [1/2]

sxy::SX_FINAL::transition_impl ( const event_id  _event_id,
vertex _source,
vertex _target,
const sxy::transition_kind  _kind = transition_kind::EXTERNAL,
constraint_uptr  _guard = constraint_uptr(),
behavior_uptr  _behavior = behavior_uptr() 
)

◆ transition_impl() [2/2]

sxy::SX_FINAL::transition_impl ( const event_ids  _event_ids,
vertex _source,
vertex _target,
const sxy::transition_kind  _kind = transition_kind::EXTERNAL,
constraint_uptr  _guard = constraint_uptr(),
behavior_uptr  _behavior = behavior_uptr() 
)

◆ transition_priority()

sxy::SX_FINAL::transition_priority ( compound_transition _compound_transition)
explicit

◆ visit() [1/15]

virtual void sxy::SX_FINAL::visit ( const composite_state _composite_state)
virtual

◆ visit() [2/15]

virtual void sxy::SX_FINAL::visit ( const simple_state _simple_state)
virtual

◆ visit() [3/15]

virtual void sxy::SX_FINAL::visit ( const composite_state _composite_state)
virtual

◆ visit() [4/15]

virtual void sxy::SX_FINAL::visit ( const simple_state _simple_state)
virtual

◆ visit() [5/15]

virtual void sxy::SX_FINAL::visit ( const final_state _final_state)
virtual

◆ visit() [6/15]

virtual void sxy::SX_FINAL::visit ( const initial_pseudostate _initial_pseudostate)
virtual

◆ visit() [7/15]

virtual void sxy::SX_FINAL::visit ( const choice _choice)
virtual

◆ visit() [8/15]

virtual void sxy::SX_FINAL::visit ( const junction _junction)
virtual

◆ visit() [9/15]

virtual void sxy::SX_FINAL::visit ( const join _join)
virtual

◆ visit() [10/15]

virtual void sxy::SX_FINAL::visit ( const fork _fork)
virtual

◆ visit() [11/15]

virtual void sxy::SX_FINAL::visit ( const entry_point _entry_point)
virtual

◆ visit() [12/15]

virtual void sxy::SX_FINAL::visit ( const exit_point _exit_point)
virtual

◆ visit() [13/15]

virtual void sxy::SX_FINAL::visit ( const deep_history _deep_history)
virtual

◆ visit() [14/15]

virtual void sxy::SX_FINAL::visit ( const shallow_history _shallow_history)
virtual

◆ visit() [15/15]

virtual void sxy::SX_FINAL::visit ( const terminate_pseudostate _terminate_pseudostate)
virtual

◆ wait() [1/2]

bool sxy::SX_FINAL::wait ( const sxe::milliseconds  _timeoutInMs) const

Waiting given amount of time for the state machine to terminate (or to stop).

Parameters
_timeoutInMsTime in milliseconds to wait for the state machine to terminate.
Returns
bool true if the state machine is terminated or stopped, false otherwise.
See also
halt_and_join, halt, run, wait

◆ wait() [2/2]

void sxy::SX_FINAL::wait ( ) const

Wait for the machine to terminate (or to stop).

Returns
void
See also
halt_and_join, halt, run, wait

The documentation for this class was generated from the following files: