#include <RONet.h>

A router network is responsible for watching loaded edges, nodes,!!!
Definition at line 66 of file RONet.h.
Public Member Functions | |
| void | closeOutput () throw () |
| closes the file output for computed routes | |
| const std::map< std::string, ROEdge * > & | getEdgeMap () const |
| unsigned int | getEdgeNo () const |
| Returns the number of edges thenetwork contains. | |
| const ROEdge * | getRandomDestination () const throw () |
| Returns a random edge which may be used as an ending point. | |
| ROEdge * | getRandomDestination () throw () |
| Returns a random edge which may be used as an ending point. | |
| const ROEdge * | getRandomSource () const throw () |
| Returns a random edge which may be used as a starting point. | |
| ROEdge * | getRandomSource () throw () |
| Returns a random edge which may be used as a starting point. | |
| bool | hasRestrictions () const |
| void | openOutput (const std::string &filename, bool useAlternatives) throw (IOError) |
| Opens the output for computed routes. | |
| RONet () throw () | |
| Constructor. | |
| void | setRestrictionFound () |
| virtual | ~RONet () throw () |
| Destructor. | |
Insertion and retrieval of graph parts | |
| virtual void | addEdge (ROEdge *edge) throw () |
| void | addNode (RONode *node) throw () |
| ROEdge * | getEdge (const std::string &name) const throw () |
| Retrieves an edge from the network. | |
| RONode * | getNode (const std::string &id) const throw () |
| Retrieves an node from the network. | |
Insertion and retrieval of vehicle types, vehicles, routes, and route definitions | |
| bool | addRouteDef (RORouteDef *def) throw () |
| virtual bool | addVehicle (const std::string &id, ROVehicle *veh) throw () |
| virtual bool | addVehicleType (SUMOVTypeParameter *type) throw () |
| RORouteDef * | getRouteDef (const std::string &name) const throw () |
| Returns the named route definition. | |
| SUMOVTypeParameter * | getVehicleTypeSecure (const std::string &id) throw () |
| Retrieves the named vehicle type. | |
Processing stored vehicle definitions | |
| virtual bool | furtherStored () |
| Returns the information whether further vehicles are stored. | |
| SUMOTime | saveAndRemoveRoutesUntil (OptionsCont &options, SUMOAbstractRouter< ROEdge, ROVehicle > &router, SUMOTime time) |
| Computes routes described by their definitions and saves them. | |
Protected Member Functions | |
| void | checkSourceAndDestinations () const |
| Initialises the lists of source and destination edges. | |
| bool | computeRoute (OptionsCont &options, SUMOAbstractRouter< ROEdge, ROVehicle > &router, const ROVehicle *const veh) |
Protected Attributes | |
| std::vector< ROEdge * > | myDestinationEdges |
| List of destination edges. | |
| unsigned int | myDiscardedRouteNo |
| The number of discarded routes. | |
| NamedObjectCont< ROEdge * > | myEdges |
| Known edges. | |
| bool | myHaveRestrictions |
| Whether the network contains edges which not all vehicles may pass. | |
| NamedObjectCont< RONode * > | myNodes |
| Known nodes. | |
| unsigned int | myReadRouteNo |
| The number of read routes. | |
| OutputDevice * | myRouteAlternativesOutput |
| The file to write the computed route alternatives into. | |
| NamedObjectCont< RORouteDef * > | myRoutes |
| Known routes. | |
| OutputDevice * | myRoutesOutput |
| The file to write the computed routes into. | |
| std::vector< ROEdge * > | mySourceEdges |
| List of source edges. | |
| ROVehicleCont | myVehicles |
| Known vehicles. | |
| NamedObjectCont < SUMOVTypeParameter * > | myVehicleTypes |
| Known vehicle types. | |
| std::set< std::string > | myVehIDs |
| Known vehicle ids. | |
| unsigned int | myWrittenRouteNo |
| The number of written routes. | |
Private Member Functions | |
| RONet & | operator= (const RONet &src) |
| Invalidated assignment operator. | |
| RONet (const RONet &src) | |
| Invalidated copy constructor. | |
| RONet::RONet | ( | ) | throw () |
Constructor.
Definition at line 59 of file RONet.cpp.
00060 : myVehicleTypes(), 00061 myRoutesOutput(0), myRouteAlternativesOutput(0), 00062 myReadRouteNo(0), myDiscardedRouteNo(0), myWrittenRouteNo(0), 00063 myHaveRestrictions(false) {}
| RONet::~RONet | ( | ) | throw () [virtual] |
Destructor.
Definition at line 66 of file RONet.cpp.
References ROVehicleCont::clear(), NamedObjectCont< T >::clear(), myEdges, myNodes, myRoutes, myVehicles, and myVehicleTypes.
00066 { 00067 myNodes.clear(); 00068 myEdges.clear(); 00069 myVehicleTypes.clear(); 00070 myRoutes.clear(); 00071 myVehicles.clear(); 00072 }
| RONet::RONet | ( | const RONet & | src | ) | [private] |
Invalidated copy constructor.
| void RONet::addEdge | ( | ROEdge * | edge | ) | throw () [virtual] |
Definition at line 76 of file RONet.cpp.
References NamedObjectCont< T >::add(), MsgHandler::getErrorInstance(), MsgHandler::inform(), and myEdges.
Referenced by RONetHandler::parseDistrict(), and RONetHandler::parseEdge().
00076 { 00077 if (!myEdges.add(edge->getID(), edge)) { 00078 MsgHandler::getErrorInstance()->inform("The edge '" + edge->getID() + "' occurs at least twice."); 00079 delete edge; 00080 } 00081 }
| void RONet::addNode | ( | RONode * | node | ) | throw () |
Definition at line 85 of file RONet.cpp.
References NamedObjectCont< T >::add(), MsgHandler::getErrorInstance(), MsgHandler::inform(), and myNodes.
Referenced by RONetHandler::parseEdge(), and RONetHandler::parseJunction().
00085 { 00086 if (!myNodes.add(node->getID(), node)) { 00087 MsgHandler::getErrorInstance()->inform("The node '" + node->getID() + "' occurs at least twice."); 00088 delete node; 00089 } 00090 }
| bool RONet::addRouteDef | ( | RORouteDef * | def | ) | throw () |
Definition at line 94 of file RONet.cpp.
References NamedObjectCont< T >::add(), and myRoutes.
Referenced by RORDGenerator_ODAmounts::FlowDef::addSingleRoute(), RORDLoader_TripDefs::myEndElement(), RORDLoader_SUMOBase::myEndElement(), and RORDGenerator_ODAmounts::myEndFlowAmountDef().
Definition at line 163 of file RONet.cpp.
References ROVehicleCont::add(), MsgHandler::getErrorInstance(), MsgHandler::inform(), myReadRouteNo, myVehicles, and myVehIDs.
Referenced by RORDGenerator_ODAmounts::FlowDef::addSingleRoute(), RORDLoader_SUMOBase::closeVehicle(), and RORDLoader_TripDefs::myEndElement().
00163 { 00164 if (myVehIDs.find(id)==myVehIDs.end()&&myVehicles.add(id, veh)) { 00165 myVehIDs.insert(id); 00166 myReadRouteNo++; 00167 return true; 00168 } 00169 MsgHandler::getErrorInstance()->inform("The vehicle '" + id + "' occurs at least twice."); 00170 return false; 00171 }
| bool RONet::addVehicleType | ( | SUMOVTypeParameter * | type | ) | throw () [virtual] |
Definition at line 152 of file RONet.cpp.
References NamedObjectCont< T >::add(), MsgHandler::getErrorInstance(), MsgHandler::inform(), and myVehicleTypes.
Referenced by getVehicleTypeSecure(), RORDLoader_TripDefs::myEndElement(), and RORDLoader_SUMOBase::myEndElement().
00152 { 00153 if (!myVehicleTypes.add(type->id, type)) { 00154 MsgHandler::getErrorInstance()->inform("The vehicle type '" + type->id + "' occurs at least twice."); 00155 delete type; 00156 return false; 00157 } 00158 return true; 00159 }
| void RONet::checkSourceAndDestinations | ( | ) | const [protected] |
Initialises the lists of source and destination edges.
Definition at line 313 of file RONet.cpp.
References ROEdge::ET_SINK, ROEdge::ET_SOURCE, NamedObjectCont< T >::getMyMap(), ROEdge::getType(), myDestinationEdges, myEdges, and mySourceEdges.
Referenced by getRandomDestination(), and getRandomSource().
00313 { 00314 if (myDestinationEdges.size()!=0||mySourceEdges.size()!=0) { 00315 return; 00316 } 00317 const std::map<std::string, ROEdge*> &edges = myEdges.getMyMap(); 00318 for (std::map<std::string, ROEdge*>::const_iterator i=edges.begin(); i!=edges.end(); ++i) { 00319 ROEdge *e = (*i).second; 00320 ROEdge::EdgeType type = e->getType(); 00321 // !!! add something like "classified edges only" for using only sources or sinks 00322 if (type!=ROEdge::ET_SOURCE) { 00323 myDestinationEdges.push_back(e); 00324 } 00325 if (type!=ROEdge::ET_SINK) { 00326 mySourceEdges.push_back(e); 00327 } 00328 } 00329 }
| void RONet::closeOutput | ( | ) | throw () |
closes the file output for computed routes
Definition at line 116 of file RONet.cpp.
References OutputDevice::close(), myRouteAlternativesOutput, and myRoutesOutput.
Referenced by computeRoutes().
00116 { 00117 // end writing 00118 if (myRoutesOutput!= 0) { 00119 myRoutesOutput->close(); 00120 } 00121 // only if opened 00122 if (myRouteAlternativesOutput!=0) { 00123 myRouteAlternativesOutput->close(); 00124 } 00125 }
| bool RONet::computeRoute | ( | OptionsCont & | options, | |
| SUMOAbstractRouter< ROEdge, ROVehicle > & | router, | |||
| const ROVehicle *const | veh | |||
| ) | [protected] |
Definition at line 175 of file RONet.cpp.
References RORouteDef::addAlternative(), RORouteDef::buildCurrentRoute(), OptionsCont::getBool(), ROVehicle::getDepartureTime(), MsgHandler::getErrorInstance(), ROVehicle::getID(), ROVehicle::getRouteDefinition(), MsgHandler::getWarningInstance(), MsgHandler::inform(), ReferencedItem::isSaved(), RORoute::recheckForLoops(), and RORoute::size().
Referenced by saveAndRemoveRoutesUntil().
00176 { 00177 MsgHandler *mh = MsgHandler::getErrorInstance(); 00178 if (options.getBool("continue-on-unbuild")) { 00179 mh = MsgHandler::getWarningInstance(); 00180 } 00181 RORouteDef * const routeDef = veh->getRouteDefinition(); 00182 // check if the route definition is valid 00183 if (routeDef==0) { 00184 mh->inform("The vehicle '" + veh->getID() + "' has no valid route."); 00185 return false; 00186 } 00187 // check whether the route was already saved 00188 if (routeDef->isSaved()) { 00189 return true; 00190 } 00191 // 00192 RORoute *current = 00193 routeDef->buildCurrentRoute(router, veh->getDepartureTime(), *veh); 00194 if (current==0||current->size()==0) { 00195 delete current; 00196 return false; 00197 } 00198 // check whether we have to evaluate the route for not containing loops 00199 if (options.getBool("remove-loops")) { 00200 current->recheckForLoops(); 00201 } 00202 // check whether the route is still valid 00203 if (current->size()==0) { 00204 delete current; 00205 return false; 00206 } 00207 // add built route 00208 routeDef->addAlternative(router, veh, current, veh->getDepartureTime()); 00209 return true; 00210 }
| bool RONet::furtherStored | ( | ) | [virtual] |
Returns the information whether further vehicles are stored.
Definition at line 258 of file RONet.cpp.
References myVehicles, and NamedObjectCont< T >::size().
Referenced by ROLoader::processRoutesStepWise().
00258 { 00259 return myVehicles.size()>0; 00260 }
| ROEdge* RONet::getEdge | ( | const std::string & | name | ) | const throw () [inline] |
Retrieves an edge from the network.
This is not very pretty, but necessary, though, as routes run over instances, not over ids.
| [in] | name | The name of the edge to retrieve |
Definition at line 99 of file RONet.h.
References NamedObjectCont< T >::get(), and myEdges.
Referenced by ROJTRTurnDefLoader::addToEdge(), ROJTRTurnDefLoader::beginFromEdge(), RODFNet::getDetectorEdge(), RORDLoader_TripDefs::getEdge(), loadJTRDefinitions(), RORDLoader_SUMOBase::myCharacters(), ROJTRTurnDefLoader::myCharacters(), ROJTRTurnDefLoader::myStartElement(), RODFDetectorHandler::myStartElement(), RONetHandler::parseConnectedEdge(), RONetHandler::parseConnectingEdge(), RONetHandler::parseDistrict(), RONetHandler::parseDistrictEdge(), RODFDetectorCon::writeEmitters(), and RODFDetectorCon::writeSpeedTrigger().
| const std::map< std::string, ROEdge * > & RONet::getEdgeMap | ( | ) | const |
Definition at line 339 of file RONet.cpp.
References NamedObjectCont< T >::getMyMap(), and myEdges.
Referenced by RODFNet::buildApproachList(), initNet(), and ROLoader::loadWeights().
| unsigned int RONet::getEdgeNo | ( | ) | const |
Returns the number of edges thenetwork contains.
Definition at line 333 of file RONet.cpp.
References myEdges, and NamedObjectCont< T >::size().
Referenced by computeRoutes(), and ROJTRRouter::ROJTRRouter().
| RONode* RONet::getNode | ( | const std::string & | id | ) | const throw () [inline] |
Retrieves an node from the network.
| [in] | name | The name of the node to retrieve |
Definition at line 121 of file RONet.h.
References NamedObjectCont< T >::get(), and myNodes.
Referenced by RONetHandler::parseEdge(), and RONetHandler::parseJunction().
| const ROEdge * RONet::getRandomDestination | ( | ) | const throw () |
Returns a random edge which may be used as an ending point.
If the list of possible destinations (roads with no successor, "myDestinationEdges") is empty, it is tried to be built, first.
Definition at line 301 of file RONet.cpp.
References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and myDestinationEdges.
00301 { 00302 // check whether an edge may be returned 00303 checkSourceAndDestinations(); 00304 if (myDestinationEdges.size()==0) { 00305 return 0; 00306 } 00307 // choose a random edge 00308 return RandHelper::getRandomFrom(myDestinationEdges); 00309 }
| ROEdge * RONet::getRandomDestination | ( | ) | throw () |
Returns a random edge which may be used as an ending point.
If the list of possible destinations (roads with no successor, "myDestinationEdges") is empty, it is tried to be built, first.
Definition at line 289 of file RONet.cpp.
References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and myDestinationEdges.
00289 { 00290 // check whether an edge may be returned 00291 checkSourceAndDestinations(); 00292 if (myDestinationEdges.size()==0) { 00293 return 0; 00294 } 00295 // choose a random edge 00296 return RandHelper::getRandomFrom(myDestinationEdges); 00297 }
| const ROEdge * RONet::getRandomSource | ( | ) | const throw () |
Returns a random edge which may be used as a starting point.
If the list of possible sources (roads with no predecessor, "mySourceEdges") is empty, it is tried to be built, first.
Definition at line 276 of file RONet.cpp.
References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and mySourceEdges.
00276 { 00277 // check whether an edge may be returned 00278 checkSourceAndDestinations(); 00279 if (mySourceEdges.size()==0) { 00280 return 0; 00281 } 00282 // choose a random edge 00283 return RandHelper::getRandomFrom(mySourceEdges); 00284 }
| ROEdge * RONet::getRandomSource | ( | ) | throw () |
Returns a random edge which may be used as a starting point.
If the list of possible source (roads with no predecessor, "mySourceEdges") is empty, it is tried to be built, first.
Definition at line 264 of file RONet.cpp.
References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and mySourceEdges.
00264 { 00265 // check whether an edge may be returned 00266 checkSourceAndDestinations(); 00267 if (mySourceEdges.size()==0) { 00268 return 0; 00269 } 00270 // choose a random edge 00271 return RandHelper::getRandomFrom(mySourceEdges); 00272 }
| RORouteDef* RONet::getRouteDef | ( | const std::string & | name | ) | const throw () [inline] |
Returns the named route definition.
| [in] | name | The name of the route definition to retrieve |
Definition at line 178 of file RONet.h.
References NamedObjectCont< T >::get(), and myRoutes.
Referenced by RORDLoader_SUMOBase::closeVehicle().
| SUMOVTypeParameter * RONet::getVehicleTypeSecure | ( | const std::string & | id | ) | throw () |
Retrieves the named vehicle type.
If the named vehicle type was not added to the net before, a default vehicle type which consists of the id only is generated, added to the net and returned.
Only if the name is "", 0 is returned.
| [in] | id | The id of the vehicle type to return |
Definition at line 130 of file RONet.cpp.
References addVehicleType(), NamedObjectCont< T >::get(), SUMOVTypeParameter::id, myVehicleTypes, and SUMOVTypeParameter::onlyReferenced.
Referenced by RORDLoader_SUMOBase::closeVehicle(), RORDLoader_TripDefs::myEndElement(), and RORDGenerator_ODAmounts::myEndFlowAmountDef().
00130 { 00131 // check whether the type was already known 00132 SUMOVTypeParameter *type = myVehicleTypes.get(id); 00133 if (type!=0) { 00134 return type; 00135 } 00136 if (id=="") { 00137 // ok, no vehicle type was given within the user input 00138 // return the default type 00139 return 0; 00140 } 00141 // Assume, the user will define the type somewhere else 00142 // return a type which contains the id only 00143 type = new SUMOVTypeParameter(); 00144 type->id = id; 00145 type->onlyReferenced = true; 00146 addVehicleType(type); 00147 return type; 00148 }
| bool RONet::hasRestrictions | ( | ) | const |
Definition at line 345 of file RONet.cpp.
References myHaveRestrictions.
Referenced by computeRoutes().
00345 { 00346 return myHaveRestrictions; 00347 }
Opens the output for computed routes.
If the second parameter is true, a second file for route alternatives will be opened. The route alternatives files is simply the given name with ".alt" appended (before the ".xml"-suffix). If one of the file outputs can not be build, an IOError is thrown
| [in] | filename | The (base) name of the file(s) to create |
| [in] | useAlternatives | Whether a file for writing alternatives shall be created |
Definition at line 100 of file RONet.cpp.
References OutputDevice::getDevice(), myRouteAlternativesOutput, myRoutesOutput, and OutputDevice::writeXMLHeader().
Referenced by computeRoutes().
00100 { 00101 myRoutesOutput = &OutputDevice::getDevice(filename); 00102 myRoutesOutput->writeXMLHeader("routes"); 00103 if (useAlternatives) { 00104 size_t len = filename.length(); 00105 if (len > 4 && filename.substr(len - 4) == ".xml") { 00106 myRouteAlternativesOutput = &OutputDevice::getDevice(filename.substr(0, len-4)+".alt.xml"); 00107 } else { 00108 myRouteAlternativesOutput = &OutputDevice::getDevice(filename+".alt"); 00109 } 00110 myRouteAlternativesOutput->writeXMLHeader("route-alternatives"); 00111 } 00112 }
| SUMOTime RONet::saveAndRemoveRoutesUntil | ( | OptionsCont & | options, | |
| SUMOAbstractRouter< ROEdge, ROVehicle > & | router, | |||
| SUMOTime | time | |||
| ) |
Computes routes described by their definitions and saves them.
As long a vehicle with a departure time not larger than the given exists, its route is computed and it is written and removed from the internal container.
| [in] | options | The options used during this process |
| [in] | router | The router to use for routes computation |
| [in] | options | The time until which route definitions shall be processed |
Definition at line 214 of file RONet.cpp.
References computeRoute(), ROVehicleCont::erase(), OptionsCont::getBool(), ROVehicle::getDepartureTime(), ROVehicle::getID(), OptionsCont::getInt(), ROVehicleCont::getTopVehicle(), myDiscardedRouteNo, myReadRouteNo, myRouteAlternativesOutput, myRoutesOutput, myVehicles, myWrittenRouteNo, ROVehicle::saveAllAsXML(), NamedObjectCont< T >::size(), toString(), and WRITE_MESSAGE.
Referenced by ROLoader::makeSingleStep(), and ROLoader::processAllRoutes().
00215 { 00216 SUMOTime lastTime = -1; 00217 // write all vehicles (and additional structures) 00218 while (myVehicles.size()!=0) { 00219 // get the next vehicle 00220 const ROVehicle * const veh = myVehicles.getTopVehicle(); 00221 SUMOTime currentTime = veh->getDepartureTime(); 00222 // check whether it shall not yet be computed 00223 if (currentTime>time) { 00224 lastTime = currentTime; 00225 break; 00226 } 00227 // check whether to print the output 00228 if (lastTime!=currentTime&&lastTime!=-1) { 00229 // report writing progress 00230 if (options.getInt("stats-period")>=0 && ((int) currentTime%options.getInt("stats-period"))==0) { 00231 WRITE_MESSAGE("Read: " + toString(myReadRouteNo) + ", Discarded: " + toString(myDiscardedRouteNo) + ", Written: " + toString(myWrittenRouteNo)); 00232 } 00233 } 00234 lastTime = currentTime; 00235 00236 // ok, compute the route (try it) 00237 if (computeRoute(options, router, veh)) { 00238 // write the route 00239 veh->saveAllAsXML(router, *myRoutesOutput, myRouteAlternativesOutput, options.getBool("exit-times")); 00240 myWrittenRouteNo++; 00241 // remove the route if it is not longer used 00242 /* 00243 if (!myRoutes.erase(route->getID())) { 00244 MsgHandler::getWarningInstance()->inform("Could not remove " + route->getID()); 00245 } 00246 */ 00247 } else { 00248 myDiscardedRouteNo++; 00249 } 00250 // and the vehicle 00251 myVehicles.erase(veh->getID()); 00252 } 00253 return lastTime; 00254 }
| void RONet::setRestrictionFound | ( | ) |
Definition at line 351 of file RONet.cpp.
References myHaveRestrictions.
Referenced by RONetHandler::parseLane().
00351 { 00352 myHaveRestrictions = true; 00353 }
std::vector<ROEdge*> RONet::myDestinationEdges [mutable, protected] |
List of destination edges.
Definition at line 320 of file RONet.h.
Referenced by checkSourceAndDestinations(), and getRandomDestination().
unsigned int RONet::myDiscardedRouteNo [protected] |
The number of discarded routes.
Definition at line 332 of file RONet.h.
Referenced by saveAndRemoveRoutesUntil().
NamedObjectCont<ROEdge*> RONet::myEdges [protected] |
Known edges.
Definition at line 305 of file RONet.h.
Referenced by addEdge(), checkSourceAndDestinations(), getEdge(), getEdgeMap(), getEdgeNo(), and ~RONet().
bool RONet::myHaveRestrictions [protected] |
Whether the network contains edges which not all vehicles may pass.
Definition at line 338 of file RONet.h.
Referenced by hasRestrictions(), and setRestrictionFound().
NamedObjectCont<RONode*> RONet::myNodes [protected] |
unsigned int RONet::myReadRouteNo [protected] |
The number of read routes.
Definition at line 329 of file RONet.h.
Referenced by addVehicle(), and saveAndRemoveRoutesUntil().
OutputDevice* RONet::myRouteAlternativesOutput [protected] |
The file to write the computed route alternatives into.
Definition at line 326 of file RONet.h.
Referenced by closeOutput(), openOutput(), and saveAndRemoveRoutesUntil().
NamedObjectCont<RORouteDef*> RONet::myRoutes [protected] |
Known routes.
Definition at line 311 of file RONet.h.
Referenced by addRouteDef(), getRouteDef(), and ~RONet().
OutputDevice* RONet::myRoutesOutput [protected] |
The file to write the computed routes into.
Definition at line 323 of file RONet.h.
Referenced by closeOutput(), openOutput(), and saveAndRemoveRoutesUntil().
std::vector<ROEdge*> RONet::mySourceEdges [mutable, protected] |
List of source edges.
Definition at line 317 of file RONet.h.
Referenced by checkSourceAndDestinations(), and getRandomSource().
ROVehicleCont RONet::myVehicles [protected] |
Known vehicles.
Definition at line 314 of file RONet.h.
Referenced by addVehicle(), furtherStored(), saveAndRemoveRoutesUntil(), and ~RONet().
NamedObjectCont<SUMOVTypeParameter*> RONet::myVehicleTypes [protected] |
Known vehicle types.
Definition at line 308 of file RONet.h.
Referenced by addVehicleType(), getVehicleTypeSecure(), and ~RONet().
std::set<std::string> RONet::myVehIDs [protected] |
unsigned int RONet::myWrittenRouteNo [protected] |
The number of written routes.
Definition at line 335 of file RONet.h.
Referenced by saveAndRemoveRoutesUntil().
1.5.6