53 wxThread(wxTHREAD_JOINABLE),
57 runtimeErrorHandler_(NULL) {
131 while (!TestDestroy()) {
133 std::string command =
"";
142 if (command ==
"quit") {
146 wxPostEvent(
gui_, eventCmd);
149 while (!TestDestroy()) {
158 wxPostEvent(
gui_, eventCmd);
165 wxPostEvent(
gui_, eventCmdDone);
172 wxPostEvent(
gui_, eventError);
181 wxPostEvent(
gui_, event);
196 wxPostEvent(
gui_, simEvent);
211 wxPostEvent(
gui_, simEvent);
263 wxPostEvent(
gui_, simEvent);
268 wxPostEvent(
gui_, simEvent);
273 wxPostEvent(
gui_, simEvent);
278 wxPostEvent(
gui_, simEvent);
283 wxPostEvent(
gui_, simEvent);
288 wxPostEvent(
gui_, simEvent);
293 wxPostEvent(
gui_, simEvent);
#define assert(condition)
@ SRE_USER_REQUESTED
User requested the simulation to stop explicitly, e.g., by pressing ctrl-c in the CLI.
virtual void handleEvent()
virtual void initialize(std::string defPrompt="", FILE *in=stdin, FILE *out=stdout, FILE *err=stderr)
virtual std::string readLine(std::string prompt="")
virtual ~ProximSimulationThread()
ProximRuntimeErrorHandler * runtimeErrorHandler_
Runtime error handler.
TracedSimulatorFrontend * simulation_
Simulator backend.
ProximLineReader * lineReader_
Linereader used for reading the user input.
ProximMainFrame * gui_
Proxim main frame where the simulator events are passed to.
TracedSimulatorFrontend * frontend()
void initialize(ProximMainFrame *gui)
SimulatorInterpreter * interpreter_
SimulatorInterpreter where the user input is passed to.
SimulatorInterpreterContext * interpreterContext_
SimulatorInterpreterContext. ?
SimulatorInterpreter * interpreter()
ProximLineReader & lineReader()
virtual std::string result()
virtual bool error() const
static const wxEventType EVT_SIMULATOR_START
Simulation started.
static const wxEventType EVT_SIMULATOR_ERROR
Simulator error event.
static const wxEventType EVT_SIMULATOR_TERMINATED
Simulator thread terminated.
static const wxEventType EVT_SIMULATOR_MACHINE_LOADED
Machine loaded event.
static const wxEventType EVT_SIMULATOR_RUN
Simulation ran/resumed.
static const wxEventType EVT_SIMULATOR_PROGRAM_LOADED
Program loaded event.
static const wxEventType EVT_SIMULATOR_LOADING_MACHINE
Machine loading started.
static const wxEventType EVT_SIMULATOR_COMMAND_DONE
Command execution completed.
static const wxEventType EVT_SIMULATOR_COMMAND
Command received from the GUI.
static const wxEventType EVT_SIMULATOR_OUTPUT
Textual output event from simulator interpreter.
static const wxEventType EVT_SIMULATOR_LOADING_PROGRAM
Program loading started.
static const wxEventType EVT_SIMULATOR_STOP
Simulation stopped.
bool isSimulationStopped() const
bool isSimulationRunning() const
void prepareToStop(StopReason reason)
virtual bool interpret(const std::string &commandLine)
@ SIMULATOR_MACHINE_LOADED
@ SIMULATOR_PROGRAM_LOADED
@ SIMULATOR_LOADING_MACHINE
@ SIMULATOR_LOADING_PROGRAM
virtual void killSimulation()