yasmine
state_model.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 STATE_MODEL_AE9CA281_0B08_469D_BA4A_9608DD495579
12 #define STATE_MODEL_AE9CA281_0B08_469D_BA4A_9608DD495579
13 
14 
16 #include "state_model_fwd.hpp"
17 #include "transition_model.hpp"
18 #include "region_model_fwd.hpp"
19 
20 
21 namespace sxy
22 {
23 
24 
25 namespace model
26 {
27 
28 
29 class model_vertex_visitor;
30 
31 
35 {
36 public:
38  {
39  // Nothing to do...
40  }
41 
42 
43  virtual ~state_model() SX_NOEXCEPT
44  {
45  // Nothing to do...
46  }
47 
48 
49  SX_NO_COPY( state_model )
50  virtual raw_const_transition_models get_transitions() const = 0;
51  virtual const event_ids& get_deferred_events() const = 0;
52  virtual const raw_const_region_models get_regions() const = 0;
53  virtual const std::string& get_enter_behavior() const = 0;
54  virtual void set_enter_behavior( const std::string& _enter_behavior ) = 0;
55  virtual const std::string& get_do_behavior() const = 0;
56  virtual void set_do_behavior( const std::string& _do_behavior ) = 0;
57  virtual const std::string& get_exit_behavior() const = 0;
58  virtual void set_exit_behavior( const std::string& _exit_behavior ) = 0;
59  virtual void accept( model_vertex_visitor& _constructor_visitor ) const = 0;
60 };
61 
62 
63 }
64 
65 
66 }
67 
68 
69 #endif
virtual const std::string & get_exit_behavior() const =0
virtual void accept(model_vertex_visitor &_constructor_visitor) const =0
Interface for an element in the state machine model.
Definition: state_machine_element_model.hpp:36
std::vector< const region_model * > raw_const_region_models
Definition: region_model_fwd.hpp:35
virtual const std::string & get_enter_behavior() const =0
std::vector< const transition_model * > raw_const_transition_models
Definition: transition_model_fwd.hpp:33
virtual const event_ids & get_deferred_events() const =0
std::vector< event_id > event_ids
The type alias for yasmine model&#39;s event ID list.
Definition: event_model_id.hpp:35
Definition: model_vertex_visitor.hpp:42
Definition: algorithm_parameters.hpp:16
Interface for a state in the model.
Definition: state_model.hpp:34
virtual ~state_model() SX_NOEXCEPT
Definition: state_model.hpp:43
virtual void set_exit_behavior(const std::string &_exit_behavior)=0
virtual void set_enter_behavior(const std::string &_enter_behavior)=0
virtual void set_do_behavior(const std::string &_do_behavior)=0
state_model()
Definition: state_model.hpp:37
virtual raw_const_transition_models get_transitions() const =0
virtual const raw_const_region_models get_regions() const =0
virtual const std::string & get_do_behavior() const =0