yasmine
vertex_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 VERTEX_IMPL_B16E40A6_719B_4DFD_91DB_D4790C6EC14D
13 #define VERTEX_IMPL_B16E40A6_719B_4DFD_91DB_D4790C6EC14D
14 
15 
16 #include <string>
17 
18 #include "vertex.hpp"
20 
21 
22 namespace sxy
23 {
24 
25 
27  public virtual vertex, public state_machine_element_impl
28 {
29 public:
30  explicit vertex_impl( const std::string& _name );
31  virtual ~vertex_impl() SX_NOEXCEPT SX_OVERRIDE;
32  SX_NO_COPY( vertex_impl )
33  virtual composite_state* get_root_state() SX_OVERRIDE;
34  virtual const composite_state* get_root_state() const SX_OVERRIDE;
35  virtual void add_outgoing_transition( transition& _outgoing_transition ) SX_OVERRIDE;
36  virtual void add_incoming_transition( transition& _incoming_transition ) SX_OVERRIDE;
37  virtual void remove_outgoing_transition( const transition& _outgoing_transition ) SX_OVERRIDE;
38  virtual void remove_incoming_transition( const transition& _incoming_transition ) SX_OVERRIDE;
39  virtual const raw_transitions& get_outgoing_transitions() const SX_OVERRIDE;
40  virtual const raw_transitions& get_incoming_transitions() const SX_OVERRIDE;
41  virtual sxe::uri get_uri() const SX_OVERRIDE;
42  transition* search_transition( const event& _event, event_collector& _event_collector ) const SX_OVERRIDE;
43  virtual region* LCA_region( const vertex& _target_vertex ) const SX_OVERRIDE;
44  virtual composite_state* LCA_composite_state( const vertex& _rhs ) const SX_OVERRIDE;
45 
46 
47 private:
48  void add_ancestor_uri( sxe::uri& _uri ) const SX_OVERRIDE;
49  raw_transitions::iterator find_first_transition_without_guard( raw_transitions& _vector_of_transitions );
50  static bool has_no_guard( const transition* const _transition );
51 
52 
53  raw_transitions outgoing_transitions_;
54  raw_transitions incoming_transitions_;
55 };
56 
57 
58 }
59 
60 
61 #endif
virtual void add_incoming_transition(transition &_incoming_transition) SX_OVERRIDE
Definition: vertex_impl.cpp:100
Definition: event_collector.hpp:25
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 void remove_incoming_transition(const transition &_incoming_transition) SX_OVERRIDE
Definition: vertex_impl.cpp:114
Definition: adapter_cpp11.hpp:21
Definition: state_machine_element_impl.hpp:25
virtual void remove_outgoing_transition(const transition &_outgoing_transition) SX_OVERRIDE
Definition: vertex_impl.cpp:106
virtual void add_outgoing_transition(transition &_outgoing_transition) SX_OVERRIDE
Definition: vertex_impl.cpp:78
vertex_impl(const std::string &_name)
Definition: vertex_impl.cpp:31
Definition: vertex.hpp:36
transition * search_transition(const event &_event, event_collector &_event_collector) const SX_OVERRIDE
Definition: vertex_impl.cpp:142
virtual const raw_transitions & get_incoming_transitions() const SX_OVERRIDE
Definition: vertex_impl.cpp:128
std::vector< transition *> raw_transitions
Definition: transition_fwd.hpp:30
virtual const raw_transitions & get_outgoing_transitions() const SX_OVERRIDE
Definition: vertex_impl.cpp:122
Definition: transition.hpp:34
virtual ~vertex_impl() SX_NOEXCEPT SX_OVERRIDE
Definition: vertex_impl.cpp:40
Definition: vertex_impl.hpp:26
virtual sxe::uri get_uri() const SX_OVERRIDE
Definition: vertex_impl.cpp:134
virtual composite_state * LCA_composite_state(const vertex &_rhs) const SX_OVERRIDE
Definition: vertex_impl.cpp:196
virtual region * LCA_region(const vertex &_target_vertex) const SX_OVERRIDE
Definition: vertex_impl.cpp:164
virtual composite_state * get_root_state() SX_OVERRIDE
Definition: vertex_impl.cpp:46