RTC Toolkit 4.0.1
Loading...
Searching...
No Matches
model.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_COMPONENTFRAMEWORK_MODEL_HPP
14#define RTCTK_COMPONENTFRAMEWORK_MODEL_HPP
15
16#include <list>
17#include <string>
18#include <vector>
19
21
23
27struct State {
28 virtual ~State() = default;
29
30 std::string m_id;
32
34 std::list<State*> m_children;
35
36 std::string m_do_activity_id;
37 std::string m_entry_action_id;
38 std::string m_exit_action_id;
39};
40
44struct Transition {
47
48 std::string m_event_id;
49 std::string m_guard_id;
50 std::string m_action_id;
51};
52
57 explicit StateMachine(std::string const& id) {
59 m_id = id;
60 m_parent = nullptr;
61 }
62
64 for (State* s : m_all_states) {
65 delete s;
66 }
67
68 for (Transition* t : m_all_transitions) {
69 delete t;
70 }
71 }
72
73 std::list<State*> m_all_states;
74 std::list<Transition*> m_all_transitions;
75};
76
77} // namespace rtctk::componentFramework
78
79#endif
Definition: commandReplier.cpp:22
StateType
Definition: model.hpp:22
@ Simple
Definition: model.hpp:22
@ Composite
Definition: model.hpp:22
@ Parallel
Definition: model.hpp:22
@ Machine
Definition: model.hpp:22
@ Final
Definition: model.hpp:22
@ Initial
Definition: model.hpp:22
std::list< Transition * > m_all_transitions
Definition: model.hpp:74
std::list< State * > m_all_states
Definition: model.hpp:73
~StateMachine()
Definition: model.hpp:63
StateMachine(std::string const &id)
Definition: model.hpp:57
Definition: model.hpp:27
std::string m_exit_action_id
Definition: model.hpp:38
std::list< State * > m_children
Definition: model.hpp:34
std::string m_id
Definition: model.hpp:30
StateType m_type
Definition: model.hpp:31
std::string m_entry_action_id
Definition: model.hpp:37
State * m_parent
Definition: model.hpp:33
std::string m_do_activity_id
Definition: model.hpp:36
State * m_target
Definition: model.hpp:46
State * m_source
Definition: model.hpp:45
std::string m_guard_id
Definition: model.hpp:49
std::string m_event_id
Definition: model.hpp:48
std::string m_action_id
Definition: model.hpp:50