Go to the documentation of this file.
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);
302 #endif // SCXML4CPP_EXECUTOR_H
void start()
Definition: Executor.cpp:267
void addStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:108
void removeAllEventListener()
Definition: Executor.cpp:103
void removeAllStatusListener()
Definition: Executor.cpp:124
@ REJECT
Event is silently rejected if transition is not enabled.
Definition: Executor.h:80
Definition: testCoroActivity.cpp:16
Definition: Executor.h:73
Definition: StateMachine.h:64
void printStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:149
@ SILENT
Definition: Executor.h:79
void run()
Definition: Executor.cpp:257
EventHandlingPolicy getEventHandlingPolicy()
Definition: Executor.cpp:82
void setEventHandlingPolicy(const EventHandlingPolicy policy)
Definition: Executor.cpp:77
Definition: StateComparator.h:53
void removeStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:116
void setContext(Context *context)
Definition: Executor.cpp:71
void processEvent()
Definition: Executor.cpp:321
std::string formatModel()
Definition: Executor.cpp:139
Definition: EventListener.h:57
void removeEventListener(EventListener *eventListener)
Definition: Executor.cpp:95
EventHandlingPolicy
Definition: Executor.h:78
void postEvent(Event *e)
Definition: Executor.cpp:308
void stopSM()
Definition: Executor.cpp:290
Definition: StatusListener.h:60
@ DEFFERRED
Event is rejected with notification, if transition is not enabled.
Definition: Executor.h:81
void stop()
Definition: Executor.cpp:274
bool isFinal()
Definition: Executor.cpp:303
std::list< State * > getStatus()
Definition: Executor.cpp:144
bool isRunning()
Definition: Executor.cpp:298
~Executor()
Definition: Executor.cpp:69
Executor(StateMachine &stateMachine, Context *context, EventQueue &events)
Definition: Executor.cpp:57
void addEventListener(EventListener *eventListener)
Definition: Executor.cpp:87
std::string formatStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:134
Definition: EventQueue.h:55
void startSM()
Definition: Executor.cpp:154