00001 /****************************************************************************/ 00007 // Class describing the thread that performs the loading of a simulation 00008 /****************************************************************************/ 00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00010 // Copyright 2001-2010 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 #ifndef GUILoadThread_h 00020 #define GUILoadThread_h 00021 00022 00023 // =========================================================================== 00024 // included modules 00025 // =========================================================================== 00026 #ifdef _MSC_VER 00027 #include <windows_config.h> 00028 #else 00029 #include <config.h> 00030 #endif 00031 00032 #include <utils/common/SUMOTime.h> 00033 #include <utils/foxtools/FXSingleEventThread.h> 00034 #include <utils/foxtools/FXThreadEvent.h> 00035 #include <utils/common/MsgHandler.h> 00036 00037 00038 // =========================================================================== 00039 // class declarations 00040 // =========================================================================== 00041 class MFXInterThreadEventClient; 00042 class MFXEventQue; 00043 class GUINet; 00044 00045 00046 // =========================================================================== 00047 // class definitions 00048 // =========================================================================== 00052 class GUILoadThread : public FXSingleEventThread { 00053 public: 00055 GUILoadThread(MFXInterThreadEventClient *mw, MFXEventQue &eq, 00056 FXEX::FXThreadEvent &ev); 00057 00059 virtual ~GUILoadThread(); 00060 00063 FXint run(); 00064 00066 void load(const std::string &file, bool isNet); 00067 00069 void retrieveMessage(const MsgHandler::MsgType type, const std::string &msg); 00070 00071 const std::string &getFileName() const; 00072 00073 protected: 00074 virtual bool initOptions(); 00075 00076 00082 void submitEndAndCleanup(GUINet *net, SUMOTime simStartTime, SUMOTime simEndTime); 00083 00084 protected: 00086 MFXInterThreadEventClient *myParent; 00087 00089 std::string myFile; 00090 00093 OutputDevice *myErrorRetriever, *myMessageRetriever, *myWarningRetriever; 00094 00095 MFXEventQue &myEventQue; 00096 00097 FXEX::FXThreadEvent &myEventThrow; 00098 00100 bool myLoadNet; 00101 00102 }; 00103 00104 00105 #endif 00106 00107 /****************************************************************************/
1.5.6