yasmine
composite_state_model_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 #ifndef COMPOSITE_STATE_MODEL_IMPL_EAF5C6B0_9341_4872_B701_0283A0FE433E
12 #define COMPOSITE_STATE_MODEL_IMPL_EAF5C6B0_9341_4872_B701_0283A0FE433E
13 
14 
16 #include "state_model_impl.hpp"
17 
18 
19 namespace sxy
20 {
21 
22 
23 namespace model
24 {
25 
26 
29 class composite_state_model_impl SX_FINAL:
30  public virtual composite_state_model, public state_model_impl
31 {
32 
33 
34 public:
40  explicit composite_state_model_impl( const std::string& _name, const std::string& _enter_behavior = "",
41  const std::string& _exit_behavior = "", const event_ids& _deferred_events = event_ids() );
42  virtual ~composite_state_model_impl() SX_NOEXCEPT SX_OVERRIDE;
43  SX_NO_COPY( composite_state_model_impl )
44  virtual const std::string& get_do_behavior() const SX_OVERRIDE;
45  virtual void set_do_behavior( const std::string& _do_behavior ) SX_OVERRIDE;
47  virtual const std::string& get_enter_behavior() const SX_OVERRIDE;
49  void set_enter_behavior( const std::string& _enter_behavior ) SX_OVERRIDE;
51  virtual const std::string& get_exit_behavior() const SX_OVERRIDE;
53  void set_exit_behavior( const std::string& _exit_behavior ) SX_OVERRIDE;
55  virtual const raw_const_region_models get_regions() const SX_OVERRIDE;
57  virtual void add_region( region_model_uptr _region ) SX_OVERRIDE;
59  virtual raw_const_pseduostate_models get_state_pseudostates() const SX_OVERRIDE;
61  virtual void add_state_pseudostate( pseudostate_model_uptr _pseudostate ) SX_OVERRIDE;
62  virtual void accept( model_vertex_visitor& _constructor_visitor ) const SX_OVERRIDE;
63 
64 
65 private:
66  std::string enter_behavior_;
67  const std::string do_behavior_;
68  std::string exit_behavior_;
69  region_models_uptr regions_;
70  pseudostate_models_uptr state_pseudostates_;
71 };
72 
73 
74 }
75 
76 }
77 
78 
79 #endif
sxe::SX_UNIQUE_PTR< pseudostate_model > pseudostate_model_uptr
Definition: pseudostate_model_fwd.hpp:28
sxe::SX_UNIQUE_PTR< region_model > region_model_uptr
Definition: region_model_fwd.hpp:29
std::vector< const region_model * > raw_const_region_models
Definition: region_model_fwd.hpp:35
A composite state in the model.
std::vector< event_id > event_ids
The type alias for yasmine model&#39;s event ID list.
Definition: event_model_id.hpp:35
Definition: algorithm_parameters.hpp:16
std::vector< pseudostate_model_uptr > pseudostate_models_uptr
Definition: pseudostate_model_fwd.hpp:32
std::vector< const pseudostate_model * > raw_const_pseduostate_models
Definition: pseudostate_model_fwd.hpp:33
std::vector< region_model_uptr > region_models_uptr
Definition: region_model_fwd.hpp:34