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
void startSM()
Definition: Executor.cpp:154
std::list< State * > getStatus()
Definition: Executor.cpp:144
~Executor()
Definition: Executor.cpp:69
void setContext(Context *context)
Definition: Executor.cpp:71
bool isRunning()
Definition: Executor.cpp:298
bool isFinal()
Definition: Executor.cpp:303
void stopSM()
Definition: Executor.cpp:290
void processEvent()
Definition: Executor.cpp:321
void start()
Definition: Executor.cpp:267
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
std::string formatModel()
Definition: Executor.cpp:139
void printStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:149
void run()
Definition: Executor.cpp:257
Executor(StateMachine &stateMachine, Context *context, EventQueue &events)
Definition: Executor.cpp:57
void removeEventListener(EventListener *eventListener)
Definition: Executor.cpp:95
void removeAllStatusListener()
Definition: Executor.cpp:124
void setEventHandlingPolicy(const EventHandlingPolicy policy)
Definition: Executor.cpp:77
void addEventListener(EventListener *eventListener)
Definition: Executor.cpp:87
void stop()
Definition: Executor.cpp:274
std::string formatStatus(const bool usefullyqualified=false)
Definition: Executor.cpp:134
void addStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:108
void removeStatusListener(StatusListener *statusListener)
Definition: Executor.cpp:116
EventHandlingPolicy getEventHandlingPolicy()
Definition: Executor.cpp:82
void postEvent(Event *e)
Definition: Executor.cpp:308
void removeAllEventListener()
Definition: Executor.cpp:103
Definition: StateComparator.h:53
Definition: StateMachine.h:64
Definition: StatusListener.h:60
Definition: testCoroActivity.cpp:16