SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GUIEventControl Class Reference

Stores time-dependant events and executes them at the proper time (guisim) More...

#include <GUIEventControl.h>

Inheritance diagram for GUIEventControl:
Inheritance graph
Collaboration diagram for GUIEventControl:
Collaboration graph

Public Types

enum  AdaptType { ADAPT_AFTER_EXECUTION = 1, NO_CHANGE = 2 }
 Defines what to do if the insertion time lies before the current simulation time. More...
 
typedef std::pair< Command
*, SUMOTime
Event
 Combination of an event and the time it shall be executed at. More...
 

Public Member Functions

SUMOTime addEvent (Command *operation, SUMOTime execTimeStep, AdaptType type)
 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 Member Functions

 GUIEventControl (const GUIEventControl &)
 invalid copy constructor. More...
 
GUIEventControloperator= (const GUIEventControl &)
 invalid assignment operator. More...
 

Private Attributes

MFXMutex myLock
 The lock used to prohibit parallel addition and processing of events. More...
 

Detailed Description

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 53 of file GUIEventControl.h.

Member Typedef Documentation

typedef std::pair< Command*, SUMOTime > MSEventControl::Event
inherited

Combination of an event and the time it shall be executed at.

Definition at line 60 of file MSEventControl.h.

Member Enumeration Documentation

enum MSEventControl::AdaptType
inherited

Defines what to do if the insertion time lies before the current simulation time.

Enumerator
ADAPT_AFTER_EXECUTION 

Patch the time in a way that it is at least as high as the simulation begin time.

NO_CHANGE 

Do nothing.

Definition at line 67 of file MSEventControl.h.

Constructor & Destructor Documentation

GUIEventControl::GUIEventControl ( )

Default constructor.

Definition at line 44 of file GUIEventControl.cpp.

GUIEventControl::~GUIEventControl ( )

Destructor.

Definition at line 47 of file GUIEventControl.cpp.

GUIEventControl::GUIEventControl ( const GUIEventControl )
private

invalid copy constructor.

Member Function Documentation

SUMOTime GUIEventControl::addEvent ( Command operation,
SUMOTime  execTimeStep,
AdaptType  type 
)
virtual

Adds an Event.

Locks itself before calling MSEventControl::addEvent. Unlock itself after the call.

Parameters
[in]operationThe event to add
[in]execTimeStepThe time the event shall be executed at
[in]typeThe adaptation type
See also
MSEventControl::addEvent

Reimplemented from MSEventControl.

Definition at line 52 of file GUIEventControl.cpp.

References MSEventControl::addEvent(), and myLock.

void GUIEventControl::execute ( SUMOTime  time)
virtual

Executes time-dependant commands.

Locks itself before calling MSEventControl::execute. Unlock itself after the call.

Parameters
[in]timeThe current simulation time
Exceptions
ProcessErrorFrom an executed Command
See also
MSEventControl::execute

Reimplemented from MSEventControl.

Definition at line 61 of file GUIEventControl.cpp.

References MSEventControl::execute(), and myLock.

bool MSEventControl::isEmpty ( )
inherited

Returns whether events are in the que.

Returns
whether events are in the que

Definition at line 119 of file MSEventControl.cpp.

References MSEventControl::myEvents.

Referenced by MSNet::simulationState().

GUIEventControl& GUIEventControl::operator= ( const GUIEventControl )
private

invalid assignment operator.

void MSEventControl::setCurrentTimeStep ( SUMOTime  time)
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 124 of file MSEventControl.cpp.

References MSEventControl::currentTimeStep.

Field Documentation

MFXMutex GUIEventControl::myLock
private

The lock used to prohibit parallel addition and processing of events.

Definition at line 91 of file GUIEventControl.h.

Referenced by addEvent(), and execute().


The documentation for this class was generated from the following files: