|
SUMO - Simulation of Urban MObility
|
00001 /****************************************************************************/ 00007 // Temporary storage for a lanes succeeding lanes while parsing them 00008 // This class is only used when parsing legacy networks using tags succ/succlane 00009 /****************************************************************************/ 00010 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00011 // Copyright (C) 2001-2011 DLR (http://www.dlr.de/) and contributors 00012 /****************************************************************************/ 00013 // 00014 // This program is free software; you can redistribute it and/or modify 00015 // it under the terms of the GNU General Public License as published by 00016 // the Free Software Foundation; either version 2 of the License, or 00017 // (at your option) any later version. 00018 // 00019 /****************************************************************************/ 00020 #ifndef NLSucceedingLaneBuilder_h 00021 #define NLSucceedingLaneBuilder_h 00022 00023 00024 // =========================================================================== 00025 // included modules 00026 // =========================================================================== 00027 #ifdef _MSC_VER 00028 #include <windows_config.h> 00029 #else 00030 #include <config.h> 00031 #endif 00032 00033 #include <string> 00034 #include <microsim/MSLinkCont.h> 00035 00036 00037 // =========================================================================== 00038 // class declarations 00039 // =========================================================================== 00040 class MSJunction; 00041 class NLJunctionControlBuilder; 00042 00043 00044 // =========================================================================== 00045 // class definitions 00046 // =========================================================================== 00052 class NLSucceedingLaneBuilder { 00053 public: 00058 NLSucceedingLaneBuilder(NLJunctionControlBuilder& jb) throw(); 00059 00060 00062 ~NLSucceedingLaneBuilder() throw(); 00063 00064 00070 void openSuccLane(const std::string& laneId) throw(); 00071 00072 00092 void addSuccLane(const std::string& laneId, 00093 #ifdef HAVE_INTERNAL_LANES 00094 const std::string& viaID, SUMOReal pass, 00095 #endif 00096 LinkDirection dir, LinkState state, 00097 const std::string& tlid="", unsigned int linkNo=0) throw(InvalidArgument); 00098 00099 00107 void closeSuccLane() throw(InvalidArgument); 00108 00109 00113 const std::string& getCurrentLaneName() const throw(); 00114 00115 00116 private: 00119 std::string myCurrentLane; 00120 00123 MSLinkCont* mySuccLanes; 00124 00126 NLJunctionControlBuilder& myJunctionControlBuilder; 00127 00128 00129 private: 00131 NLSucceedingLaneBuilder(const NLSucceedingLaneBuilder& s); 00132 00134 NLSucceedingLaneBuilder& operator=(const NLSucceedingLaneBuilder& s); 00135 00136 00137 }; 00138 00139 00140 #endif 00141 00142 /****************************************************************************/ 00143