SUMO - Simulation of Urban MObility
RONet Class Reference

The router's network representation. More...

#include <RONet.h>

Inheritance diagram for RONet:
RODFNet

Public Member Functions

void closeOutput ()
 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.
ROEdgegetRandomDestination ()
 Returns a random edge which may be used as an ending point.
const ROEdgegetRandomDestination () const
 Returns a random edge which may be used as an ending point.
ROEdgegetRandomSource ()
 Returns a random edge which may be used as a starting point.
const ROEdgegetRandomSource () const
 Returns a random edge which may be used as a starting point.
bool hasRestrictions () const
void openOutput (const std::string &filename, bool useAlternatives, const std::string &typefilename)
 Opens the output for computed routes.
 RONet ()
 Constructor.
void setRestrictionFound ()
virtual ~RONet ()
 Destructor.
Insertion and retrieval of graph parts
virtual bool addEdge (ROEdge *edge)
ROEdgegetEdge (const std::string &name) const
 Retrieves an edge from the network.
void addNode (RONode *node)
RONodegetNode (const std::string &id) const
 Retrieves an node from the network.
Insertion and retrieval of vehicle types, vehicles, routes, and route definitions
virtual bool addVehicleType (SUMOVTypeParameter *type)
SUMOVTypeParametergetVehicleTypeSecure (const std::string &id)
 Retrieves the named vehicle type.
bool addRouteDef (RORouteDef *def)
RORouteDefgetRouteDef (const std::string &name) const
 Returns the named route definition.
virtual bool addVehicle (const std::string &id, ROVehicle *veh)
Processing stored vehicle definitions
SUMOTime saveAndRemoveRoutesUntil (OptionsCont &options, SUMOAbstractRouter< ROEdge, ROVehicle > &router, SUMOTime time)
 Computes routes described by their definitions and saves them.
virtual bool furtherStored ()
 Returns the information whether further vehicles are stored.

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)
ROVehicleContgetVehicles ()
 return vehicles for use by RouteAggregator

Protected Attributes

bool myDefaultVTypeMayBeDeleted
 Whether no vehicle type was loaded.
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.
OutputDevicemyTypesOutput
 The file to write the vehicle types into.
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.

Friends

class RouteAggregator

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 68 of file RONet.h.


Constructor & Destructor Documentation

RONet::~RONet ( ) [virtual]

Destructor.

Definition at line 74 of file RONet.cpp.

References ROVehicleCont::clear(), NamedObjectCont< T >::clear(), myEdges, myNodes, myRoutes, myVehicles, and myVehicleTypes.

RONet::RONet ( const RONet src) [private]

Invalidated copy constructor.


Member Function Documentation

bool RONet::addEdge ( ROEdge edge) [virtual]
void RONet::checkSourceAndDestinations ( ) const [protected]

Initialises the lists of source and destination edges.

Definition at line 341 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().

closes the file output for computed routes

Definition at line 130 of file RONet.cpp.

References OutputDevice::close(), myRouteAlternativesOutput, myRoutesOutput, and myTypesOutput.

Referenced by computeRoutes().

bool RONet::furtherStored ( ) [virtual]

Returns the information whether further vehicles are stored.

Definition at line 286 of file RONet.cpp.

References myVehicles, and NamedObjectCont< T >::size().

Referenced by ROLoader::processRoutesStepWise().

const std::map< std::string, ROEdge * > & RONet::getEdgeMap ( ) const
unsigned int RONet::getEdgeNo ( ) const

Returns the number of edges thenetwork contains.

Definition at line 361 of file RONet.cpp.

References myEdges, and NamedObjectCont< T >::size().

Referenced by computeRoutes(), and main().

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

Retrieves an node from the network.

Parameters:
[in]nameThe 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 126 of file RONet.h.

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

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

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 317 of file RONet.cpp.

References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and myDestinationEdges.

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 329 of file RONet.cpp.

References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and myDestinationEdges.

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 292 of file RONet.cpp.

References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and mySourceEdges.

const ROEdge * RONet::getRandomSource ( ) const

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 304 of file RONet.cpp.

References checkSourceAndDestinations(), RandHelper::getRandomFrom(), and mySourceEdges.

RORouteDef* RONet::getRouteDef ( const std::string &  name) const [inline]

Returns the named route definition.

Parameters:
[in]nameThe 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

Rename myRoutes to myRouteDefinitions

Definition at line 183 of file RONet.h.

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

Referenced by RORDLoader_SUMOBase::closeVehicle().

ROVehicleCont& RONet::getVehicles ( ) [inline, protected]

return vehicles for use by RouteAggregator

Definition at line 304 of file RONet.h.

References myVehicles.

SUMOVTypeParameter * RONet::getVehicleTypeSecure ( const std::string &  id)

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]idThe id of the vehicle type to return
Returns:
The named vehicle type
Todo:
Check whether a const pointer may be returned

Definition at line 148 of file RONet.cpp.

References addVehicleType(), DEFAULT_VTYPE_ID, NamedObjectCont< T >::get(), SUMOVTypeParameter::id, myDefaultVTypeMayBeDeleted, myVehicleTypes, and SUMOVTypeParameter::onlyReferenced.

Referenced by RORDLoader_SUMOBase::closeVehicle(), computeRoutes(), RORDLoader_TripDefs::myEndElement(), and RORDGenerator_ODAmounts::myEndFlowAmountDef().

Definition at line 373 of file RONet.cpp.

References myHaveRestrictions.

Referenced by computeRoutes().

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

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]filenameThe (base) name of the file(s) to create
[in]useAlternativesWhether a file for writing alternatives shall be created
[in]filenameThe name of the vtype file to create, "" means no separate types

Definition at line 110 of file RONet.cpp.

References OutputDevice::getDevice(), myRouteAlternativesOutput, myRoutesOutput, myTypesOutput, and OutputDevice::writeXMLHeader().

Referenced by computeRoutes().

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

Invalidated assignment operator.

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]optionsThe options used during this process
[in]routerThe router to use for routes computation
[in]optionsThe time until which route definitions shall be processed
Returns:
The last seen departure time>=time

Definition at line 242 of file RONet.cpp.

References computeRoute(), ROVehicleCont::erase(), OptionsCont::getBool(), ROVehicle::getDepartureTime(), ROVehicle::getID(), OptionsCont::getInt(), ROVehicleCont::getTopVehicle(), myDiscardedRouteNo, myReadRouteNo, myRouteAlternativesOutput, myRoutesOutput, myTypesOutput, myVehicles, myWrittenRouteNo, ROVehicle::saveAllAsXML(), NamedObjectCont< T >::size(), toString(), and WRITE_MESSAGE.

Referenced by ROLoader::makeSingleStep(), ROLoader::processAllRoutes(), and ROLoader::processAllRoutesWithBulkRouter().

Definition at line 379 of file RONet.cpp.

References myHaveRestrictions.

Referenced by RONetHandler::parseLane().


Friends And Related Function Documentation

friend class RouteAggregator [friend]

Definition at line 69 of file RONet.h.


Field Documentation

Whether no vehicle type was loaded.

Definition at line 323 of file RONet.h.

Referenced by addVehicleType(), and getVehicleTypeSecure().

std::vector<ROEdge*> RONet::myDestinationEdges [mutable, protected]

List of destination edges.

Definition at line 335 of file RONet.h.

Referenced by checkSourceAndDestinations(), and getRandomDestination().

unsigned int RONet::myDiscardedRouteNo [protected]

The number of discarded routes.

Definition at line 350 of file RONet.h.

Referenced by saveAndRemoveRoutesUntil().

Known edges.

Definition at line 317 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 356 of file RONet.h.

Referenced by hasRestrictions(), and setRestrictionFound().

Known nodes.

Definition at line 314 of file RONet.h.

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

unsigned int RONet::myReadRouteNo [protected]

The number of read routes.

Definition at line 347 of file RONet.h.

Referenced by addVehicle(), and saveAndRemoveRoutesUntil().

The file to write the computed route alternatives into.

Definition at line 341 of file RONet.h.

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

Known routes.

Definition at line 326 of file RONet.h.

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

The file to write the computed routes into.

Definition at line 338 of file RONet.h.

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

std::vector<ROEdge*> RONet::mySourceEdges [mutable, protected]

List of source edges.

Definition at line 332 of file RONet.h.

Referenced by checkSourceAndDestinations(), and getRandomSource().

The file to write the vehicle types into.

Definition at line 344 of file RONet.h.

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

Known vehicles.

Definition at line 329 of file RONet.h.

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

Known vehicle types.

Definition at line 320 of file RONet.h.

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

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

Known vehicle ids.

Definition at line 311 of file RONet.h.

Referenced by addVehicle().

unsigned int RONet::myWrittenRouteNo [protected]

The number of written routes.

Definition at line 353 of file RONet.h.

Referenced by saveAndRemoveRoutesUntil().


The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines