yasmine
region_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 REGION_IMPL_DDA92905_6CBE_4061_8DA1_4E6C1E98E11A
13 #define REGION_IMPL_DDA92905_6CBE_4061_8DA1_4E6C1E98E11A
14 
15 
16 #include "region.hpp"
18 
19 
20 namespace sxy
21 {
22 
23 
24 class region_impl SX_FINAL:
25  public virtual region, public state_machine_element_impl
26 {
27 public:
28  explicit region_impl( const std::string& _name );
29  virtual ~region_impl() SX_NOEXCEPT SX_OVERRIDE;
30  SX_NO_COPY(region_impl)
31  void set_parent_state( composite_state* const _composite_state ) SX_OVERRIDE;
32  virtual raw_const_states get_states() const SX_OVERRIDE;
33  virtual const composite_state& get_parent_state() const SX_OVERRIDE;
34  virtual composite_state& get_parent_state() SX_OVERRIDE;
35  virtual vertex* get_vertex( const std::string& _vertex_name ) const SX_OVERRIDE;
36  virtual size_t get_pseudostate_count() const SX_OVERRIDE;
37  virtual vertex* get_pseudostate( const std::string& _name ) const SX_OVERRIDE;
38  virtual raw_const_pseudostates get_pseudostates() const SX_OVERRIDE;
39  virtual initial_pseudostate* get_initial_pseudostate() const SX_OVERRIDE;
40  virtual size_t get_state_count() const SX_OVERRIDE;
41  virtual state* get_state( const std::string& _name ) const SX_OVERRIDE;
42  virtual const state* get_active_state() const SX_OVERRIDE;
43  virtual state* get_active_state() SX_OVERRIDE;
44  virtual void set_active_state( state* const _active_state ) SX_OVERRIDE;
45  virtual void set_state_was_active( state* const _active_state ) SX_OVERRIDE;
46  virtual const state* get_last_active_state() const SX_OVERRIDE;
47  virtual state* get_last_active_state() SX_OVERRIDE;
48  virtual initial_pseudostate& add_initial_pseudostate( initial_pseudostate_uptr _initial_state ) SX_OVERRIDE;
49 
53  virtual initial_pseudostate& add_initial_pseudostate( const std::string& _initial_state_name ) SX_OVERRIDE;
54  virtual state& add_state( state_uptr _state ) SX_OVERRIDE;
55  virtual simple_state& add_simple_state( const std::string& _simple_state_name,
56  const behavior_function& _behavior = behavior_function(),
57  const behavior_function& _entry_behavior = behavior_function(),
58  const behavior_function& _exit_behavior = behavior_function() ) SX_OVERRIDE;
59  virtual simple_state& add_simple_state( const std::string& _simple_state_name, const event_ids& _deferred_events,
60  const behavior_function& _behavior = behavior_function(),
61  const behavior_function& _entry_behavior = behavior_function(),
62  const behavior_function& _exit_behavior = behavior_function(),
63  event_sptr _error_event = event_sptr() ) SX_OVERRIDE;
64  virtual simple_state& add_async_simple_state( const std::string& _async_simple_state_name,
65  const event_ids& _deferred_events, async_behavior_uptr _do_action = async_behavior_uptr(),
66  const behavior_function& _entry_behavior = behavior_function(),
67  const behavior_function& _exit_behavior = behavior_function(),
68  event_sptr _error_event = event_sptr() ) SX_OVERRIDE;
69  virtual composite_state& add_composite_state( const std::string& _composite_state_name,
70  const behavior_function& _entry_action = behavior_function(),
71  const behavior_function& _exit_action = behavior_function() ) SX_OVERRIDE;
72  virtual composite_state& add_composite_state( const std::string& _composite_state_name,
73  const event_ids& _deferred_events, const behavior_function& _entry_action = behavior_function(),
74  const behavior_function& _exit_action = behavior_function() ) SX_OVERRIDE;
75  virtual final_state& add_final_state( const std::string& _name ) SX_OVERRIDE;
76  virtual choice& add_choice( choice_uptr _choice ) SX_OVERRIDE;
77 
81  virtual choice& add_choice( const std::string& _choice_name ) SX_OVERRIDE;
82  virtual fork& add_fork( fork_uptr _fork ) SX_OVERRIDE;
83 
87  virtual fork& add_fork( const std::string& _fork_name ) SX_OVERRIDE;
88  virtual join& add_join( join_uptr _join ) SX_OVERRIDE;
89 
93  virtual join& add_join( const std::string& _join_name ) SX_OVERRIDE;
94  virtual junction& add_junction( junction_uptr _junction ) SX_OVERRIDE;
95 
99  virtual junction& add_junction( const std::string& _junction_name ) SX_OVERRIDE;
100  virtual terminate_pseudostate& add_terminate_pseudostate(
101  terminate_pseudostate_uptr _terminate_pseudostate ) SX_OVERRIDE;
102 
106  virtual terminate_pseudostate& add_terminate_pseudostate(
107  const std::string& _terminate_pseudostate_name ) SX_OVERRIDE;
108  sxe::uri get_uri() const SX_OVERRIDE;
109  void add_ancestor_uri ( sxe::uri& _uri ) const SX_OVERRIDE;
110  virtual bool is_active_state_final () const SX_OVERRIDE;
111  virtual bool check( state_machine_defects& _defects ) const SX_OVERRIDE;
112  virtual const state_machine_element * get_parent() const SX_OVERRIDE;
113 
114 
115 private:
116  composite_state* parent_state_;
117  states states_;
118  pseudostates pseudostates_;
119  initial_pseudostate* initial_pseudostate_;
120  state* active_state_;
121  state* last_active_state_;
122 };
123 
124 
125 }
126 
127 
128 #endif
std::vector< state_uptr > states
Definition: state_fwd.hpp:30
sxe::SX_UNIQUE_PTR< initial_pseudostate > initial_pseudostate_uptr
Definition: initial_pseudostate_fwd.hpp:23
std::vector< state_machine_defect > state_machine_defects
Definition: state_machine_defect_fwd.hpp:23
sxe::SX_UNIQUE_PTR< junction > junction_uptr
Definition: junction_fwd.hpp:25
std::vector< pseudostate_uptr > pseudostates
Definition: pseudostate_fwd.hpp:27
Definition: adapter_cpp11.hpp:21
std::vector< const pseudostate *> raw_const_pseudostates
Definition: pseudostate_fwd.hpp:28
sxe::SX_UNIQUE_PTR< state > state_uptr
Definition: state_fwd.hpp:27
std::vector< const state *> raw_const_states
Definition: state_fwd.hpp:29
sxe::shared_ptr< event > event_sptr
Definition: event_fwd.hpp:25
sxe::SX_UNIQUE_PTR< async_behavior > async_behavior_uptr
Definition: async_behavior_fwd.hpp:24
sxe::SX_UNIQUE_PTR< choice > choice_uptr
Definition: choice_fwd.hpp:25
sxe::SX_UNIQUE_PTR< fork > fork_uptr
Definition: fork_fwd.hpp:25
sxe::function< void(const event &, event_collector &) > behavior_function
Definition: behavior_fwd.hpp:29
std::vector< event_id > event_ids
The type alias for yasmine&#39;s event ID list.
Definition: event_id.hpp:29
sxe::SX_UNIQUE_PTR< terminate_pseudostate > terminate_pseudostate_uptr
Definition: terminate_pseudostate_fwd.hpp:25
sxe::SX_UNIQUE_PTR< join > join_uptr
Definition: join_fwd.hpp:25