yasmine
state_pseudostate_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 STATE_PSEUDOSTATE_IMPL_2EA11FC4_EEC5_430E_AB7B_27E54A1202A0
13 #define STATE_PSEUDOSTATE_IMPL_2EA11FC4_EEC5_430E_AB7B_27E54A1202A0
14 
15 
16 #include "state_pseudostate.hpp"
17 #include "pseudostate_impl.hpp"
18 #include "optimization.hpp"
19 
20 
21 namespace sxy
22 {
23 
24 
26  public virtual state_pseudostate, public pseudostate_impl
27 {
28 public:
29  explicit state_pseudostate_impl( const std::string& _name );
30  virtual ~state_pseudostate_impl() SX_NOEXCEPT SX_OVERRIDE;
31  SX_NO_COPY(state_pseudostate_impl)
32  virtual const state_machine_element * get_parent() const SX_OVERRIDE;
33  virtual composite_state& get_parent_state() const SX_OVERRIDE;
34  virtual void set_parent_state( composite_state* const _parent_state ) SX_OVERRIDE;
35  virtual raw_composite_states get_ancestors( composite_state* const _final_ancestor,
36  bool _include_final_ancestor = true ) const SX_OVERRIDE;
37  virtual raw_regions get_ancestors_as_regions() const SX_OVERRIDE;
38 
39 
40 private:
41  void collect_ancestors( raw_composite_states& _ancestors, composite_state* const _final_ancestor,
42  bool _include_final_ancestor )const;
43  composite_state* parent_;
44 
45 #ifdef Y_OPTIMIZE_4_SPEED
46  mutable raw_composite_states ancestors_;
47  mutable raw_regions ancestors_as_regions_;
48 #endif
49 
50 };
51 
52 
53 }
54 
55 
56 #endif
state_pseudostate_impl(const std::string &_name)
Definition: state_pseudostate_impl.cpp:24
Definition: state_machine_element.hpp:26
std::vector< composite_state *> raw_composite_states
Definition: composite_state_fwd.hpp:27
Definition: composite_state.hpp:28
Definition: state_pseudostate_impl.hpp:25
virtual void set_parent_state(composite_state *const _parent_state) SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:57
Definition: state_pseudostate.hpp:24
virtual raw_composite_states get_ancestors(composite_state *const _final_ancestor, bool _include_final_ancestor=true) const SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:63
Definition: adapter_cpp11.hpp:21
std::vector< region *> raw_regions
Definition: region_fwd.hpp:29
Definition: pseudostate_impl.hpp:24
virtual raw_regions get_ancestors_as_regions() const SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:80
virtual const state_machine_element * get_parent() const SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:45
virtual composite_state & get_parent_state() const SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:51
virtual ~state_pseudostate_impl() SX_NOEXCEPT SX_OVERRIDE
Definition: state_pseudostate_impl.cpp:39