SUMO - Simulation of Urban MObility
GUIRunThread Class Reference

#include <GUIRunThread.h>

Inheritance diagram for GUIRunThread:
FXSingleEventThread FXObject FXThread

Public Types

enum  { ID_THREAD_EVENT }

Public Member Functions

virtual void begin ()
virtual void deleteSim ()
GUINetgetNet () const
 GUIRunThread (FXApp *app, MFXInterThreadEventClient *mw, FXRealSpinDial &simDelay, MFXEventQue &eq, FXEX::FXThreadEvent &ev)
 constructor
virtual void init (GUINet *net, SUMOTime start, SUMOTime end)
 initialises the thread with the new simulation
long onThreadEvent (FXObject *, FXSelector, void *)
long onThreadSignal (FXObject *, FXSelector, void *)
void prepareDestruction ()
void resume ()
void retrieveMessage (const MsgHandler::MsgType type, const std::string &msg)
 Retrieves messages from the loading module.
virtual FXint run ()
 starts the execution
void signal ()
void signal (FXuint seltype)
bool simulationAvailable () const
virtual bool simulationIsStartable () const
virtual bool simulationIsStepable () const
virtual bool simulationIsStopable () const
void singleStep ()
void stop ()
virtual ~GUIRunThread ()
 destructor

Static Public Member Functions

static void sleep (long ms)

Protected Member Functions

void makeStep ()

Protected Attributes

OutputDevicemyErrorRetriever
 The instances of message retriever encapsulations Needed to be deleted from the handler later on.
MFXEventQuemyEventQue
FXEX::FXThreadEventmyEventThrow
bool myHalting
 information whether the simulation is halting (is not being executed)
OutputDevicemyMessageRetriever
GUINetmyNet
 the loaded simulation network
bool myOk
bool myQuit
FXRealSpinDialmySimDelay
SUMOTime mySimEndTime
SUMOTime mySimStartTime
 the times the simulation starts and ends with
bool mySimulationInProgress
MFXMutex mySimulationLock
bool mySingle
OutputDevicemyWarningRetriever

Detailed Description

This thread executes the given simulation stepwise to allow parallel visualisation. The avoidance of collisions between the simulation execution and its visualisation is done individually for every lane using mutexes

Definition at line 62 of file GUIRunThread.h.


Member Enumeration Documentation

anonymous enum [inherited]
Enumerator:
ID_THREAD_EVENT 

Definition at line 31 of file FXSingleEventThread.h.


Constructor & Destructor Documentation


Member Function Documentation

void GUIRunThread::begin ( ) [virtual]

starts the simulation (execution of one step after another)

Definition at line 243 of file GUIRunThread.cpp.

References myOk, mySimStartTime, time2string(), and WRITE_MESSAGE.

Referenced by GUIApplicationWindow::onCmdStart(), GUIApplicationWindow::onCmdStep(), and run().

long FXSingleEventThread::onThreadEvent ( FXObject ,
FXSelector  ,
void *   
) [inherited]

Definition at line 108 of file FXSingleEventThread.cpp.

long FXSingleEventThread::onThreadSignal ( FXObject ,
FXSelector  ,
void *   
) [inherited]

Definition at line 94 of file FXSingleEventThread.cpp.

References PIPE_READ.

halts the thread before it shall be deleted

Definition at line 292 of file GUIRunThread.cpp.

References myHalting, and myQuit.

Referenced by GUIApplicationWindow::~GUIApplicationWindow().

called when the user presses the "resume"-button, this method resumes the execution after a break

Definition at line 229 of file GUIRunThread.cpp.

References myHalting, and mySingle.

Referenced by GUIApplicationWindow::onCmdStart().

void GUIRunThread::retrieveMessage ( const MsgHandler::MsgType  type,
const std::string &  msg 
)

Retrieves messages from the loading module.

Definition at line 299 of file GUIRunThread.cpp.

References MFXEventQue::add(), myEventQue, myEventThrow, and FXEX::FXThreadEvent::signal().

Referenced by GUIRunThread().

void FXSingleEventThread::signal ( ) [inherited]

Definition at line 72 of file FXSingleEventThread.cpp.

References PIPE_WRITE.

void FXSingleEventThread::signal ( FXuint  seltype) [inherited]

Definition at line 83 of file FXSingleEventThread.cpp.

References PIPE_WRITE, and UNUSED_PARAMETER.

Definition at line 319 of file GUIRunThread.cpp.

References myHalting, and myNet.

Referenced by GUIApplicationWindow::onUpdStep().

Definition at line 313 of file GUIRunThread.cpp.

References myHalting, and myNet.

Referenced by GUIApplicationWindow::onUpdStop().

called when the user presses the "single step"-button, this method allows the thread to perform a single simulation step

Definition at line 236 of file GUIRunThread.cpp.

References myHalting, and mySingle.

Referenced by GUIApplicationWindow::onCmdStep().

void FXSingleEventThread::sleep ( long  ms) [static, inherited]

Definition at line 122 of file FXSingleEventThread.cpp.

Referenced by GUISUMOAbstractView::makeSnapshot(), and run().

halts the simulation execution

Definition at line 251 of file GUIRunThread.cpp.

References myHalting, and mySingle.

Referenced by GUIApplicationWindow::onCmdStop(), and run().


Field Documentation

The instances of message retriever encapsulations Needed to be deleted from the handler later on.

Definition at line 139 of file GUIRunThread.h.

Referenced by deleteSim(), GUIRunThread(), init(), and ~GUIRunThread().

Definition at line 143 of file GUIRunThread.h.

Referenced by makeStep(), and retrieveMessage().

Definition at line 145 of file GUIRunThread.h.

Referenced by makeStep(), and retrieveMessage().

information whether the simulation is halting (is not being executed)

Definition at line 121 of file GUIRunThread.h.

Referenced by deleteSim(), makeStep(), prepareDestruction(), resume(), run(), simulationIsStartable(), simulationIsStepable(), simulationIsStopable(), singleStep(), and stop().

Definition at line 139 of file GUIRunThread.h.

Referenced by deleteSim(), GUIRunThread(), init(), and ~GUIRunThread().

bool GUIRunThread::myOk [protected]

Definition at line 132 of file GUIRunThread.h.

Referenced by begin(), makeStep(), and run().

information whether the thread shall be stopped (if not, the thread stays in an endless loop)

Definition at line 125 of file GUIRunThread.h.

Referenced by prepareDestruction(), run(), and ~GUIRunThread().

Definition at line 141 of file GUIRunThread.h.

Referenced by run().

Definition at line 118 of file GUIRunThread.h.

Referenced by init(), and makeStep().

the times the simulation starts and ends with

Definition at line 118 of file GUIRunThread.h.

Referenced by begin(), deleteSim(), and init().

information whether a simulation step is being performed (otherwise the thread may be waiting or the simulation is maybe not performed at all)

Definition at line 130 of file GUIRunThread.h.

Referenced by deleteSim(), makeStep(), and ~GUIRunThread().

Definition at line 147 of file GUIRunThread.h.

Referenced by deleteSim(), and makeStep().

information whether the thread is running in single step mode

Definition at line 135 of file GUIRunThread.h.

Referenced by makeStep(), resume(), singleStep(), and stop().

Definition at line 139 of file GUIRunThread.h.

Referenced by deleteSim(), GUIRunThread(), init(), and ~GUIRunThread().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines