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
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()
Definition Executor.cpp:70
Definition StateComparator.h:53
Definition StateMachine.h:64
Definition StatusListener.h:60
Definition testCoroActivity.cpp:16
boost::asio::io_context::executor_type Executor
Definition testExecutorActivity.cpp:14