RONet Class Reference

#include <RONet.h>

Inheritance diagram for RONet:

RODFNet

Detailed Description

The router's network representation.

A router network is responsible for watching loaded edges, nodes,!!!

Todo:
Vehicle ids are not tracked; it may happen that the same id is added twice...

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 ROEdgegetRandomDestination () const throw ()
 Returns a random edge which may be used as an ending point.
ROEdgegetRandomDestination () throw ()
 Returns a random edge which may be used as an ending point.
const ROEdgegetRandomSource () const throw ()
 Returns a random edge which may be used as a starting point.
ROEdgegetRandomSource () 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 ()
ROEdgegetEdge (const std::string &name) const throw ()
 Retrieves an edge from the network.
RONodegetNode (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 ()
RORouteDefgetRouteDef (const std::string &name) const throw ()
 Returns the named route definition.
SUMOVTypeParametergetVehicleTypeSecure (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.
OutputDevicemyRouteAlternativesOutput
 The file to write the computed route alternatives into.
NamedObjectCont< RORouteDef * > myRoutes
 Known routes.
OutputDevicemyRoutesOutput
 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

RONetoperator= (const RONet &src)
 Invalidated assignment operator.
 RONet (const RONet &src)
 Invalidated copy constructor.

Constructor & Destructor Documentation

RONet::RONet (  )  throw ()

Constructor.

Definition at line 59 of file RONet.cpp.

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.


Member Function Documentation

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 ()

bool RONet::addVehicle ( const std::string &  id,
ROVehicle veh 
) throw () [virtual]

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.

Parameters:
[in] name The name of the edge to retrieve
Returns:
The named edge if known, otherwise 0
Todo:
Check whether a const pointer may be returned

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().

00099                                                          {
00100         return myEdges.get(name);
00101     }

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().

00339                         {
00340     return myEdges.getMyMap();
00341 }

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().

00333                        {
00334     return (unsigned int) myEdges.size();
00335 }

RONode* RONet::getNode ( const std::string &  id  )  const throw () [inline]

Retrieves an node from the network.

Parameters:
[in] name The name of the node to retrieve
Returns:
The named node if known, otherwise 0
Todo:
Check whether a const pointer may be returned

Definition at line 121 of file RONet.h.

References NamedObjectCont< T >::get(), and myNodes.

Referenced by RONetHandler::parseEdge(), and RONetHandler::parseJunction().

00121                                                        {
00122         return myNodes.get(id);
00123     }

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.

Returns:
A random edge from the list of edges with no successor

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.

Returns:
A random edge from the list of edges with no successor

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.

Returns:
A random edge from the list of edges with no predecessor

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.

Returns:
A random edge from the list of edges with no predecessor

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.

Parameters:
[in] name The name of the route definition to retrieve
Returns:
The named route definition if known, otherwise 0
Todo:
Check whether a const pointer may be returned
Todo:
Rename myRoutes to myRouteDefinitions

Definition at line 178 of file RONet.h.

References NamedObjectCont< T >::get(), and myRoutes.

Referenced by RORDLoader_SUMOBase::closeVehicle().

00178                                                                  {
00179         return myRoutes.get(name);
00180     }

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.

Parameters:
[in] id The id of the vehicle type to return
Returns:
The named vehicle type
Todo:
Check whether a const pointer may be returned

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 }

void RONet::openOutput ( const std::string &  filename,
bool  useAlternatives 
) throw (IOError)

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

Parameters:
[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 }

RONet& RONet::operator= ( const RONet src  )  [private]

Invalidated assignment operator.

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.

Parameters:
[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
Returns:
The last seen departure time>=time

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 }


Field Documentation

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().

Known edges.

Definition at line 305 of file RONet.h.

Referenced by addEdge(), checkSourceAndDestinations(), getEdge(), getEdgeMap(), getEdgeNo(), and ~RONet().

Whether the network contains edges which not all vehicles may pass.

Definition at line 338 of file RONet.h.

Referenced by hasRestrictions(), and setRestrictionFound().

Known nodes.

Definition at line 302 of file RONet.h.

Referenced by addNode(), getNode(), and ~RONet().

unsigned int RONet::myReadRouteNo [protected]

The number of read routes.

Definition at line 329 of file RONet.h.

Referenced by addVehicle(), and saveAndRemoveRoutesUntil().

The file to write the computed route alternatives into.

Definition at line 326 of file RONet.h.

Referenced by closeOutput(), openOutput(), and saveAndRemoveRoutesUntil().

Known routes.

Definition at line 311 of file RONet.h.

Referenced by addRouteDef(), getRouteDef(), and ~RONet().

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().

Known vehicles.

Definition at line 314 of file RONet.h.

Referenced by addVehicle(), furtherStored(), saveAndRemoveRoutesUntil(), and ~RONet().

Known vehicle types.

Definition at line 308 of file RONet.h.

Referenced by addVehicleType(), getVehicleTypeSecure(), and ~RONet().

std::set<std::string> RONet::myVehIDs [protected]

Known vehicle ids.

Definition at line 299 of file RONet.h.

Referenced by addVehicle().

unsigned int RONet::myWrittenRouteNo [protected]

The number of written routes.

Definition at line 335 of file RONet.h.

Referenced by saveAndRemoveRoutesUntil().


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

Generated on Wed May 5 00:06:59 2010 for Sumo - Simulation of Urban MObility by  doxygen 1.5.6