yasmine
transition_finder.hpp
Go to the documentation of this file.
1 // //
3 // This file is part of the Seadex yasmine ecosystem (http://yasmine.seadex.de). //
4 // Copyright (C) 2016-2017 Seadex GmbH //
5 // //
6 // Licensing information is available in the folder "license" which is part of this distribution. //
7 // The same information is available on the www @ http://yasmine.seadex.de/Licenses.html. //
8 // //
10 
11 
12 #ifndef TRANSITION_FINDER_FDB88C02_ECF9_4BB5_B99C_3F45813BF357
13 #define TRANSITION_FINDER_FDB88C02_ECF9_4BB5_B99C_3F45813BF357
14 
15 
16 #include "essentials/non_copyable.hpp"
17 
18 #include "choice_fwd.hpp"
20 
21 
22 namespace sxy
23 {
24 
25 
26 class state;
27 class composite_state;
28 class transition;
29 class event_processing_callback;
30 class event;
31 class event_collector;
32 
33 
34 class transition_finder SX_FINAL
35 {
36 public:
37  transition_finder();
38  ~transition_finder() SX_NOEXCEPT;
39  SX_NO_COPY(transition_finder)
40  void search_for_enabled_transitions_in_all_regions( const state& _current_state, const event& _event,
41  compound_transitions& _enabled_compound_transitions, bool& _event_is_deferred,
42  event_collector& _event_collector ) const;
43  void search_for_enabled_completion_transitions_in_all_regions( const state& _current_state,
44  compound_transitions& _enabled_compound_transitions, bool& _event_is_deferred,
45  event_collector& _event_collector ) const;
46  static void search_initial_transitions( const composite_state& _state,
47  compound_transitions& _compound_transitions, event_collector& _event_collector );
48  static void search_choice_transitions( const raw_const_choices& _choices,
49  compound_transitions& _compound_transitions, const event& _event, event_collector& _event_collector );
50 
51 
52 private:
53  static transition* search_completion_transition( const state& _state, event_collector& _event_collector );
54  bool search_for_transition( const state& _current_state, compound_transitions& _enabled_compound_transitions,
55  const event& _event, bool& _event_is_deferred, event_collector& _event_collector ) const;
56 };
57 
58 
59 }
60 
61 
62 #endif
std::vector< compound_transition_uptr > compound_transitions
Definition: compound_transition_fwd.hpp:32
Definition: adapter_cpp11.hpp:21
std::vector< const choice *> raw_const_choices
Definition: choice_fwd.hpp:28