rad 8.2.0
Loading...
Searching...
No Matches
Helper.h
Go to the documentation of this file.
1
9
10/*
11 * scampl4cpp/engine
12 *
13 * Copyright by European Southern Observatory, 2012
14 * All rights reserved
15 *
16 * This library is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public
18 * License as published by the Free Software Foundation; either
19 * version 2.1 of the License, or (at your option) any later version.
20 *
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
25 *
26 * You should have received a copy of the GNU Lesser General Public
27 * License along with this library; if not, write to the Free Software
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
29 * 02111-1307 USA.
30 */
31
32#ifndef SCXML4CPP_HELPER_H
33#define SCXML4CPP_HELPER_H
34
35#ifndef __cplusplus
36#error This is a C++ include file and cannot be used from plain C
37#endif
38
39#include <list>
40#include <set>
41#include <vector>
42#include <string>
43
44namespace scxml4cpp {
45
46class Transition;
47class StateMachine;
48class State;
49class Action;
50class Activity;
51class Event;
52
57class Helper {
58 public:
62 Helper();
63
67 ~Helper();
68
72 const std::string printStateType(State* s);
73
77 const std::string printTransition(Transition* t);
78
82 const std::string printTransitions(std::list<Transition*>& transitions);
83
87 const std::string printTargetState(Transition* transitions);
88
92 const std::string printTargetStates(std::list<Transition*>& transitions);
93
97 const std::string printActions(std::list<Action*>& actions);
98
102 const std::string printActivities(std::list<Activity*>& activities);
103
107 const std::string printStates(State* s);
108
112 const std::string printStateMachine(StateMachine&);
113
121 const std::string formatStatus(std::list<State*>& status, const bool usefullyqualified = false);
122
131 bool compareStateDocOrder(State* s1, State* s2);
132
139 void sortAtomicStates(std::set<State*>& status, std::vector<State*>& sortedStatus);
140
147 bool isInState(const std::list<State*>& status, const std::list<std::string>& stateNames);
148
156 int countParents(State* s);
157
167 bool isDescendant(State* s, State* p);
168
175 std::set<State*> getAncestors(std::list<State*>& states);
176
183 std::set<State*> getAncestors(State* state);
184
191 std::list<State*> getAncestorsList(std::set<State*>& states);
192
199 std::list<State*> getAncestorsList(State*);
200
207 std::list<State*> getAncestorsList(std::list<State*>& states);
208
216 std::list<State*> getProperAncestors(State* state, State* upperBound);
217
229
238 bool eventMatch(const Event& e1, const Event& e2);
239
246 std::list<State*> getAtomicStates(std::set<State*>& states);
247
254 std::list<State*> getAtomicStates(std::list<State*>& states);
255
271 bool isPreempted(State* s, std::list<Transition*>& transitions);
272
273 static const std::string LEAF_STATE_SEPARATOR; // used to separate leaf states
274 static const std::string COMP_STATE_SEPARATOR; // used to build fully qualified state names
275
276 private:
277 Helper(const Helper&);
278 Helper& operator=(const Helper&);
279};
280
281} // namespace scxml4cpp
282
283#endif // SCXML4CPP_HELPER_H
Definition Action.h:66
Definition Activity.h:52
Definition Event.h:66
const std::string printTransitions(std::list< Transition * > &transitions)
Definition Helper.cpp:141
State * findLeastCommonAncestor(State *s1, State *s2)
Definition Helper.cpp:624
bool isInState(const std::list< State * > &status, const std::list< std::string > &stateNames)
Definition Helper.cpp:424
void sortAtomicStates(std::set< State * > &status, std::vector< State * > &sortedStatus)
Definition Helper.cpp:390
std::list< State * > getProperAncestors(State *state, State *upperBound)
Definition Helper.cpp:504
bool eventMatch(const Event &e1, const Event &e2)
Definition Helper.cpp:650
static const std::string COMP_STATE_SEPARATOR
Definition Helper.h:274
const std::string printTargetState(Transition *transitions)
Definition Helper.cpp:153
bool isDescendant(State *s, State *p)
Definition Helper.cpp:454
const std::string printStateType(State *s)
Definition Helper.cpp:55
const std::string printActions(std::list< Action * > &actions)
Definition Helper.cpp:180
Helper()
Definition Helper.cpp:51
const std::string printTransition(Transition *t)
Definition Helper.cpp:81
std::set< State * > getAncestors(std::list< State * > &states)
Definition Helper.cpp:546
const std::string formatStatus(std::list< State * > &status, const bool usefullyqualified=false)
Definition Helper.cpp:285
bool compareStateDocOrder(State *s1, State *s2)
Definition Helper.cpp:332
const std::string printActivities(std::list< Activity * > &activities)
Definition Helper.cpp:192
bool isPreempted(State *s, std::list< Transition * > &transitions)
Definition Helper.cpp:693
std::list< State * > getAncestorsList(std::set< State * > &states)
Definition Helper.cpp:580
const std::string printStates(State *s)
Definition Helper.cpp:204
std::list< State * > getAtomicStates(std::set< State * > &states)
Definition Helper.cpp:663
static const std::string LEAF_STATE_SEPARATOR
Definition Helper.h:273
const std::string printTargetStates(std::list< Transition * > &transitions)
Definition Helper.cpp:168
~Helper()
Definition Helper.cpp:53
int countParents(State *s)
Definition Helper.cpp:493
const std::string printStateMachine(StateMachine &)
Definition Helper.cpp:255
Definition StateMachine.h:64
Definition State.h:60
Definition Transition.h:68
Definition Action.cpp:36