![]() |
Eclipse SUMO - Simulation of Urban MObility
|
Stores time-dependant events and executes them at the proper time (guisim) More...
#include <GUIEventControl.h>
Public Types | |
typedef std::pair< Command *, SUMOTime > | Event |
Combination of an event and the time it shall be executed at. More... | |
Public Member Functions | |
void | addEvent (Command *operation, SUMOTime execTimeStep=-1) |
Adds an Event. More... | |
void | execute (SUMOTime time) |
Executes time-dependant commands. More... | |
GUIEventControl () | |
Default constructor. More... | |
bool | isEmpty () |
Returns whether events are in the que. More... | |
void | setCurrentTimeStep (SUMOTime time) |
Set the current Time. More... | |
~GUIEventControl () | |
Destructor. More... | |
Private Types | |
typedef std::priority_queue< Event, std::vector< Event >, EventSortCrit > | EventCont |
Container for time-dependant events, e.g. traffic-light-change. More... | |
Private Member Functions | |
SUMOTime | getCurrentTimeStep () |
get the Current TimeStep used in addEvent. More... | |
GUIEventControl (const GUIEventControl &) | |
invalid copy constructor. More... | |
GUIEventControl & | operator= (const GUIEventControl &) |
invalid assignment operator. More... | |
Private Attributes | |
SUMOTime | currentTimeStep |
The current TimeStep. More... | |
EventCont | myEvents |
Event-container, holds executable events. More... | |
FXMutex | myLock |
The lock used to prohibit parallel addition and processing of events. More... | |
Stores time-dependant events and executes them at the proper time (guisim)
Encapsulates MSEventControl-methods using a lock, prohibiting parallel addition / processing of events what may yield in application break due to broken containers.
Definition at line 41 of file GUIEventControl.h.
|
inherited |
Combination of an event and the time it shall be executed at.
Definition at line 53 of file MSEventControl.h.
|
privateinherited |
Container for time-dependant events, e.g. traffic-light-change.
Definition at line 126 of file MSEventControl.h.
GUIEventControl::GUIEventControl | ( | ) |
Default constructor.
Definition at line 33 of file GUIEventControl.cpp.
GUIEventControl::~GUIEventControl | ( | ) |
Destructor.
Definition at line 38 of file GUIEventControl.cpp.
|
private |
invalid copy constructor.
Adds an Event.
Locks itself before calling MSEventControl::addEvent. Unlock itself after the call.
[in] | operation | The event to add |
[in] | execTimeStep | The time the event shall be executed at (-1 means at sim start) |
Reimplemented from MSEventControl.
Definition at line 43 of file GUIEventControl.cpp.
References MSEventControl::addEvent(), and myLock.
|
virtual |
Executes time-dependant commands.
Locks itself before calling MSEventControl::execute. Unlock itself after the call.
[in] | time | The current simulation time |
ProcessError | From an executed Command |
Reimplemented from MSEventControl.
Definition at line 50 of file GUIEventControl.cpp.
References MSEventControl::execute(), and myLock.
|
privateinherited |
get the Current TimeStep used in addEvent.
Definition at line 106 of file MSEventControl.cpp.
References MSEventControl::currentTimeStep, MSNet::getCurrentTimeStep(), and MSNet::getInstance().
|
inherited |
Returns whether events are in the que.
Definition at line 96 of file MSEventControl.cpp.
References MSEventControl::myEvents.
|
private |
invalid assignment operator.
|
inherited |
Set the current Time.
This method is only for Unit Testing. Set the current TimeStep used in addEvent. Normally the time is set automatically from an instance of MSNet.
Definition at line 101 of file MSEventControl.cpp.
References MSEventControl::currentTimeStep.
|
privateinherited |
The current TimeStep.
Definition at line 129 of file MSEventControl.h.
Referenced by MSEventControl::getCurrentTimeStep(), and MSEventControl::setCurrentTimeStep().
|
privateinherited |
Event-container, holds executable events.
Definition at line 132 of file MSEventControl.h.
Referenced by MSEventControl::addEvent(), MSEventControl::execute(), MSEventControl::isEmpty(), and MSEventControl::~MSEventControl().
|
private |
The lock used to prohibit parallel addition and processing of events.
Definition at line 77 of file GUIEventControl.h.
Referenced by addEvent(), and execute().