yasmine
vertex.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 VERTEX_126F87F3_2278_4867_B69F_ABEE5AB88A61
13 #define VERTEX_126F87F3_2278_4867_B69F_ABEE5AB88A61
14 
15 
17 #include "vertex_fwd.hpp"
18 #include "transition_fwd.hpp"
19 #include "region_fwd.hpp"
20 #include "composite_state_fwd.hpp"
21 #include "event_id.hpp"
22 #include "event_priority.hpp"
23 
24 
25 namespace sxy
26 {
27 
28 
29 class const_vertex_visitor;
30 class vertex_visitor;
31 class uri;
32 class event;
33 class event_collector;
34 
35 
36 class vertex:
37  public virtual state_machine_element
38 {
39 public:
41  {
42  // Nothing to do...
43  }
44 
45 
46  virtual ~vertex() SX_NOEXCEPT SX_OVERRIDE
47  {
48  // Nothing to do...
49  }
50 
51 
52  SX_NO_COPY( vertex )
53  virtual composite_state* get_root_state() = 0;
54  virtual const composite_state* get_root_state() const = 0;
55  virtual void add_outgoing_transition( transition& _outgoing_transition ) = 0;
56  virtual void add_incoming_transition( transition& _incoming_transition ) = 0;
57  virtual void remove_outgoing_transition( const transition& _outgoing_transition ) = 0;
58  virtual void remove_incoming_transition( const transition& _incoming_transition ) = 0;
59  virtual const raw_transitions& get_outgoing_transitions() const = 0;
60  virtual const raw_transitions& get_incoming_transitions() const = 0;
61  virtual raw_regions get_ancestors_as_regions() const = 0;
62  virtual raw_composite_states get_ancestors( composite_state* const _final_ancestor,
63  bool _include_final_ancestor = true ) const = 0;
64  virtual transition * search_transition( const event& _event, event_collector& _event_collector ) const = 0;
65  virtual region * LCA_region( const vertex& _target_vertex ) const = 0;
66  virtual composite_state * LCA_composite_state( const vertex& _rhs ) const = 0;
67  virtual void accept_vertex_visitor( const_vertex_visitor& _visitor ) const = 0;
68  virtual void accept_vertex_visitor( vertex_visitor& _visitor ) = 0;
69  virtual bool check( state_machine_defects& _defects ) const SX_OVERRIDE = 0;
70 };
71 
72 
73 }
74 
75 
76 #endif
virtual composite_state * get_root_state()=0
virtual void accept_vertex_visitor(const_vertex_visitor &_visitor) const =0
Definition: event_collector.hpp:25
std::vector< state_machine_defect > state_machine_defects
Definition: state_machine_defect_fwd.hpp:23
Definition: state_machine_element.hpp:26
std::vector< composite_state *> raw_composite_states
Definition: composite_state_fwd.hpp:27
Definition: const_vertex_visitor.hpp:38
virtual void remove_outgoing_transition(const transition &_outgoing_transition)=0
virtual const raw_transitions & get_incoming_transitions() const =0
Definition: composite_state.hpp:28
Definition: region.hpp:42
Interface of an event. An event has an ID, a name and a priority (for processing by the async state m...
Definition: event.hpp:28
virtual transition * search_transition(const event &_event, event_collector &_event_collector) const =0
Definition: adapter_cpp11.hpp:21
Definition: vertex_visitor.hpp:38
virtual bool check(state_machine_defects &_defects) const SX_OVERRIDE=0
virtual raw_regions get_ancestors_as_regions() const =0
std::vector< region *> raw_regions
Definition: region_fwd.hpp:29
virtual ~vertex() SX_NOEXCEPT SX_OVERRIDE
Definition: vertex.hpp:46
Definition: vertex.hpp:36
std::vector< transition *> raw_transitions
Definition: transition_fwd.hpp:30
Definition: transition.hpp:34
virtual composite_state * LCA_composite_state(const vertex &_rhs) const =0
virtual const raw_transitions & get_outgoing_transitions() const =0
virtual void add_outgoing_transition(transition &_outgoing_transition)=0
virtual void remove_incoming_transition(const transition &_incoming_transition)=0
vertex()
Definition: vertex.hpp:40
virtual raw_composite_states get_ancestors(composite_state *const _final_ancestor, bool _include_final_ancestor=true) const =0
virtual void add_incoming_transition(transition &_incoming_transition)=0
virtual region * LCA_region(const vertex &_target_vertex) const =0