|
SUMO - Simulation of Urban MObility
|
00001 /****************************************************************************/ 00007 // Stores time-dependant events and executes them at the proper time (guisim) 00008 /****************************************************************************/ 00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00010 // Copyright (C) 2001-2011 DLR (http://www.dlr.de/) and contributors 00011 /****************************************************************************/ 00012 // 00013 // This program is free software; you can redistribute it and/or modify 00014 // it under the terms of the GNU General Public License as published by 00015 // the Free Software Foundation; either version 2 of the License, or 00016 // (at your option) any later version. 00017 // 00018 /****************************************************************************/ 00019 00020 00021 // =========================================================================== 00022 // included modules 00023 // =========================================================================== 00024 #ifdef _MSC_VER 00025 #include <windows_config.h> 00026 #else 00027 #include <config.h> 00028 #endif 00029 00030 #include <cassert> 00031 #include <utils/foxtools/MFXMutex.h> 00032 #include "GUIEventControl.h" 00033 00034 #ifdef CHECK_MEMORY_LEAKS 00035 #include <foreign/nvwa/debug_new.h> 00036 #endif // CHECK_MEMORY_LEAKS 00037 00038 00039 // =========================================================================== 00040 // member definitions 00041 // =========================================================================== 00042 GUIEventControl::GUIEventControl() throw() {} 00043 00044 00045 GUIEventControl::~GUIEventControl() throw() { 00046 } 00047 00048 00049 SUMOTime 00050 GUIEventControl::addEvent(Command* operation, 00051 SUMOTime execTimeStep, 00052 AdaptType type) throw() { 00053 myLock.lock(); 00054 SUMOTime ret = MSEventControl::addEvent(operation, execTimeStep, type); 00055 myLock.unlock(); 00056 return ret; 00057 } 00058 00059 00060 void 00061 GUIEventControl::execute(SUMOTime execTime) throw(ProcessError) { 00062 myLock.lock(); 00063 try { 00064 MSEventControl::execute(execTime); 00065 } catch (ProcessError&) { 00066 myLock.unlock(); 00067 throw; 00068 } 00069 myLock.unlock(); 00070 } 00071 00072 00073 00074 /****************************************************************************/ 00075