32 #ifndef SCXML4CPP_EXECUTOR_H
33 #define SCXML4CPP_EXECUTOR_H
36 #error This is a C++ include file and cannot be used from plain C
39 #ifndef SCXML4CPP_STATECOMPARATOR_H
43 #ifndef SCXML4CPP_EVENTQUEUE_H
47 #ifndef SCXML4CPP_HELPER_H
106 std::string
formatStatus(
const bool usefullyqualified =
false);
123 void printStatus(
const bool usefullyqualified =
false);
261 std::list<State*> mCurrentStatus;
262 std::list<State*> mPreviousStatus;
263 std::list<State*> mStatesToInvoke;
265 std::queue<Event*> mInternalEvents;
273 std::list<EventListener*> mEventListeners;
274 std::list<StatusListener*> mStatusListeners;
276 void addUniqueStateToList(
State* s, std::list<State*>& l);
279 void addStateToCurrentStatus(
State* s);
282 void processInternalEvents();
283 void exitInterpreter();
284 std::list<Transition*> selectEventlessTransitions();
285 std::list<Transition*> selectTransitions(
Event* e);
286 void microstep(std::list<Transition*>& enabledTransitions);
287 void exitStates(std::list<Transition*>& enabledTransitions);
288 void executeTransitionContent(std::list<Transition*>& enabledTransitions);
289 void enterStates(std::list<Transition*>& enabledTransitions);
290 void addStatesToEnter(
State* s,
State* root, std::list<State*>& statesToEnter,
291 std::list<State*>& statesForDefaultEntry);
293 void notifyEventListeners(
Event* e);
294 void notifyStatusListeners(std::list<State*>& status);
Definition: EventListener.h:57
Definition: EventQueue.h:55
Definition: Executor.h:73
std::string formatModel()
Definition: Executor.cpp:140
void startSM()
Definition: Executor.cpp:155
std::list< State * > getStatus()
Definition: Executor.cpp:145
bool isRunning()
Definition: Executor.cpp:299
void setEventHandlingPolicy(const EventHandlingPolicy policy)
Definition: Executor.cpp:78
void removeAllStatusListener()
Definition: Executor.cpp:125
void postEvent(Event *e)
Definition: Executor.cpp:309
void processEvent()
Definition: Executor.cpp:322
void stopSM()
Definition: Executor.cpp:291
void setContext(Context *context)
Definition: Executor.cpp:72
void removeAllEventListener()
Definition: Executor.cpp:104
EventHandlingPolicy
Definition: Executor.h:78
@ SILENT
Definition: Executor.h:79
@ REJECT
Event is silently rejected if transition is not enabled.
Definition: Executor.h:80
@ DEFFERRED
Event is rejected with notification, if transition is not enabled.
Definition: Executor.h:81
void start()
Definition: Executor.cpp:268
void removeStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:117
void stop()
Definition: Executor.cpp:275
std::string formatStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:135
void printStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:150
void addStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:109
bool isFinal()
Definition: Executor.cpp:304
EventHandlingPolicy getEventHandlingPolicy()
Definition: Executor.cpp:83
void removeEventListener(EventListener *eventListener)
Definition: Executor.cpp:96
void run()
Definition: Executor.cpp:258
void addEventListener(EventListener *eventListener)
Definition: Executor.cpp:88
Executor(StateMachine &stateMachine, Context *context, EventQueue &events)
Definition: Executor.cpp:58
~Executor()
Definition: Executor.cpp:70
Definition: StateComparator.h:53
Definition: StateMachine.h:64
Definition: StatusListener.h:60
Definition: Action.cpp:36
Definition: testCoroActivity.cpp:16