yasmine
try_to_build_compound_transition_visitor.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 TRY_TO_BUILD_COMPOUND_TRANSITION_VISITOR_92B11137_6B55_4D84_9ABB_7EE0FB784120
13 #define TRY_TO_BUILD_COMPOUND_TRANSITION_VISITOR_92B11137_6B55_4D84_9ABB_7EE0FB784120
14 
15 
16 #include "const_vertex_visitor.hpp"
17 #include "vertex_visitor.hpp"
19 
20 
21 namespace sxy
22 {
23 
24 
25 class transition;
26 class event;
27 class event_collector;
28 
29 
31  public virtual const_vertex_visitor
32 {
33 public:
35  compound_transitions& _enabled_compound_transitions, bool& _is_built, const event& _event,
36  event_collector& _event_collector );
37  virtual ~try_to_build_compound_transition_visitor() SX_NOEXCEPT SX_OVERRIDE;
39  virtual void visit( const composite_state& _composite_state ) SX_OVERRIDE;
40  virtual void visit( const simple_state& _simple_state ) SX_OVERRIDE;
41  virtual void visit( const final_state& _final_state ) SX_OVERRIDE;
42  virtual void visit( const initial_pseudostate& _initial_pseudostate ) SX_OVERRIDE;
43  virtual void visit( const choice& _choice ) SX_OVERRIDE;
44  virtual void visit( const junction& _junction ) SX_OVERRIDE;
45  virtual void visit( const join& _join ) SX_OVERRIDE;
46  virtual void visit( const fork& _fork ) SX_OVERRIDE;
47  virtual void visit( const entry_point& _entry_point ) SX_OVERRIDE;
48  virtual void visit( const exit_point& _exit_point ) SX_OVERRIDE;
49  virtual void visit( const deep_history& _deep_history ) SX_OVERRIDE;
50  virtual void visit( const shallow_history& _shallow_history ) SX_OVERRIDE;
51  virtual void visit( const terminate_pseudostate& _terminate_pseudostate ) SX_OVERRIDE;
52 
53 
54 private:
55  void build_compound_transition_and_insert_in_container();
56  void check_if_join_is_active_and_was_not_processed_yet( const join& _join );
57  static bool check_if_transition_was_already_used( const transition& _transition,
58  compound_transitions& _compound_transitions );
59 
60 
61  transition& enabled_transition_;
62  compound_transitions& enabled_compound_transitions_;
63  bool& is_built_;
64  const event& event_;
65  event_collector& event_collector_;
66 };
67 
68 
69 }
70 
71 
72 #endif
std::vector< compound_transition_uptr > compound_transitions
Definition: compound_transition_fwd.hpp:32
Definition: event_collector.hpp:25
Definition: const_vertex_visitor.hpp:38
Definition: deep_history.hpp:24
Definition: composite_state.hpp:28
try_to_build_compound_transition_visitor(transition &_enabled_transition, compound_transitions &_enabled_compound_transitions, bool &_is_built, const event &_event, event_collector &_event_collector)
Definition: try_to_build_compound_transition_visitor.cpp:39
Definition: initial_pseudostate.hpp:27
Interface of an event. An event has an ID, a name and a priority (for processing by the async state m...
Definition: event.hpp:28
Definition: exit_point.hpp:24
Definition: fork.hpp:24
Definition: terminate_pseudostate.hpp:24
Definition: adapter_cpp11.hpp:21
Definition: final_state.hpp:23
Definition: junction.hpp:24
Definition: try_to_build_compound_transition_visitor.hpp:30
Definition: simple_state.hpp:23
Definition: choice.hpp:24
Definition: transition.hpp:34
Definition: join.hpp:24
virtual void visit(const composite_state &_composite_state) SX_OVERRIDE
Definition: try_to_build_compound_transition_visitor.cpp:58
virtual ~try_to_build_compound_transition_visitor() SX_NOEXCEPT SX_OVERRIDE
Definition: try_to_build_compound_transition_visitor.cpp:52
Definition: entry_point.hpp:24
Definition: shallow_history.hpp:24