yasmine
states_to_enter_visitor_impl.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 STATES_TO_ENTER_VISITOR_IMPL_7DBD7D6E_B4AB_4156_83B3_3193383C141E
13 #define STATES_TO_ENTER_VISITOR_IMPL_7DBD7D6E_B4AB_4156_83B3_3193383C141E
14 
15 
16 #include "vertex_visitor.hpp"
17 #include "state_fwd.hpp"
18 #include "region_fwd.hpp"
19 
20 
21 namespace sxy
22 {
23 
24 
25 class vertex;
26 
27 
29  public virtual vertex_visitor
30 {
31 public:
33  raw_const_region_set& _regions_to_enter, composite_state& _LCA_of_compound_transition,
34  const vertex& _source_of_transition );
35  virtual ~states_to_enter_visitor_impl() SX_NOEXCEPT SX_OVERRIDE;
36 
38  virtual void visit( composite_state& _composite_state ) SX_OVERRIDE;
39  virtual void visit( simple_state& _simple_state ) SX_OVERRIDE;
40  virtual void visit( final_state& _final_state ) SX_OVERRIDE;
41  virtual void visit( initial_pseudostate& _initial_pseudostate ) SX_OVERRIDE;
42  virtual void visit( choice& _choice ) SX_OVERRIDE;
43  virtual void visit( junction& _junction ) SX_OVERRIDE;
44  virtual void visit( join& _join ) SX_OVERRIDE;
45  virtual void visit( fork& _fork ) SX_OVERRIDE;
46  virtual void visit( entry_point& _entry_point ) SX_OVERRIDE;
47  virtual void visit( exit_point& _exit_point ) SX_OVERRIDE;
48  virtual void visit( deep_history& _deep_history ) SX_OVERRIDE;
49  virtual void visit( shallow_history& _shallow_history ) SX_OVERRIDE;
50  virtual void visit( terminate_pseudostate& _terminate_pseudostate ) SX_OVERRIDE;
51 
52 
53 private:
54  void get_states_up_to_LCA( state& _state );
55  void get_regions_up_to_LCA( const state& _state );
56  void add_last_active_child_states_to_enter( const state& _state );
57  void insert_states_to_enter( state& _state );
58  void get_all_parent_states_to_enter( choice& _choice );
59 
60 
61  raw_states_by_nesting_level& states_to_enter_;
62  raw_const_region_set& regions_to_enter_;
63  composite_state& LCA_of_compound_transition_;
64  const vertex& source_of_transition_;
65 };
66 
67 
68 }
69 
70 
71 #endif
virtual ~states_to_enter_visitor_impl() SX_NOEXCEPT SX_OVERRIDE
Definition: states_to_enter_visitor_impl.cpp:50
Definition: state.hpp:33
Definition: deep_history.hpp:24
Definition: composite_state.hpp:28
virtual void visit(composite_state &_composite_state) SX_OVERRIDE
Definition: states_to_enter_visitor_impl.cpp:56
Definition: initial_pseudostate.hpp:27
Definition: exit_point.hpp:24
Definition: fork.hpp:24
Definition: terminate_pseudostate.hpp:24
Definition: adapter_cpp11.hpp:21
Definition: vertex_visitor.hpp:38
Definition: final_state.hpp:23
Definition: states_to_enter_visitor_impl.hpp:28
Definition: junction.hpp:24
Definition: vertex.hpp:36
Definition: simple_state.hpp:23
Definition: choice.hpp:24
Definition: join.hpp:24
std::set< const region *> raw_const_region_set
Definition: region_fwd.hpp:30
Definition: entry_point.hpp:24
Definition: shallow_history.hpp:24
std::set< state *, states_nesting_comparer > raw_states_by_nesting_level
Definition: state_fwd.hpp:33
states_to_enter_visitor_impl(raw_states_by_nesting_level &_states_to_enter, raw_const_region_set &_regions_to_enter, composite_state &_LCA_of_compound_transition, const vertex &_source_of_transition)
Definition: states_to_enter_visitor_impl.cpp:38