65 typedef std::map<const SUMOTime, std::vector<RORoutable*> >
RoutablesMap;
94 const std::map<SUMOVehicleClass, double>*
getRestrictions(
const std::string&
id)
const;
133 bool addDistrictEdge(
const std::string tazID,
const std::string edgeID,
const bool isSource);
139 void setBidiEdges(
const std::map<ROEdge*, std::string>& bidiMap);
145 const std::map<std::string, std::pair<std::vector<std::string>, std::vector<std::string> > >&
getDistricts()
const {
457 virtual ~WorkerThread() {
464 BulkmodeTask(
const bool value) : myValue(
value) {}
466 static_cast<WorkerThread*
>(context)->setBulkMode(myValue);
472 BulkmodeTask& operator=(
const BulkmodeTask&);
547 std::map<std::string, std::pair<std::vector<std::string>, std::vector<std::string> > >
myDistricts;
593 : myRoutable(v), myRemoveLoops(removeLoops), myErrorHandler(errorHandler) {}
597 const bool myRemoveLoops;
601 RoutingTask& operator=(
const RoutingTask&);
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLTag
Numbers representing SUMO-XML - element names.
A pool of worker threads which distributes the tasks and collects the results.
Abstract superclass of a task to be run with an index to keep track of pending tasks.
A thread repeatingly calculating incoming tasks.
A map of named object pointers.
T get(const std::string &id) const
Retrieves an item.
A storage for options typed value containers)
Static storage of an output device and its base (abstract) implementation.
Interface for building instances of router-edges.
A basic edge for routing applications.
A single lane the router may use.
The router's network representation.
void createBulkRouteRequests(const RORouterProvider &provider, const SUMOTime time, const bool removeLoops)
SUMOVTypeParameter * getVehicleTypeSecure(const std::string &id)
Retrieves the named vehicle type.
static RONet * getInstance()
Returns the pointer to the unique instance of RONet (singleton).
int myNumInternalEdges
The number of internal edges in the dictionary.
bool myDefaultPedTypeMayBeDeleted
Whether the default pedestrian type was already used or can still be replaced.
bool hasBidiEdges() const
return whether the network contains bidirectional rail edges
void setPermissionsFound()
bool myDefaultRailTypeMayBeDeleted
Whether the default rail type was already used or can still be replaced.
std::map< const SUMOTime, std::vector< RORoutable * > > RoutablesMap
bool myDefaultVTypeMayBeDeleted
Whether the default vehicle type was already used or can still be replaced.
void checkFlows(SUMOTime time, MsgHandler *errorHandler)
RONode * getNode(const std::string &id) const
Retrieves an node from the network.
const std::map< SUMOVehicleClass, double > * getRestrictions(const std::string &id) const
Returns the restrictions for an edge type If no restrictions are present, 0 is returned.
std::map< std::string, RandomDistributor< SUMOVTypeParameter * > * > VTypeDistDictType
Vehicle type distribution dictionary type.
const RandomDistributor< SUMOVTypeParameter * > * getVTypeDistribution(const std::string &id)
Retrieves the named vehicle type distribution.
ContainerMap myContainers
std::set< std::string > myPersonIDs
Known person ids.
std::map< std::string, std::pair< std::vector< std::string >, std::vector< std::string > > > myDistricts
traffic assignment zones with sources and sinks
bool addRouteDef(RORouteDef *def)
int myReadRouteNo
The number of read routes.
void addStoppingPlace(const std::string &id, const SumoXMLTag category, SUMOVehicleParameter::Stop *stop)
bool knowsVehicle(const std::string &id) const
returns whether a vehicle with the given id was already loaded
void cleanup()
closes the file output for computed routes and deletes associated threads if necessary
bool myHaveActiveFlows
whether any flows are still active
RONet(const RONet &src)
Invalidated copy constructor.
std::map< std::string, SUMOTime > myVehIDs
Known vehicle ids and their departure.
void openOutput(const OptionsCont &options)
Opens the output for computed routes.
NamedObjectCont< SUMOVehicleParameter * > myFlows
Known flows.
OutputDevice * myRouteAlternativesOutput
The file to write the computed route alternatives into.
bool myDefaultBikeTypeMayBeDeleted
Whether the default bicycle type was already used or can still be replaced.
RoutablesMap myRoutables
Known routables.
int getInternalEdgeNumber() const
Returns the number of internal edges the network contains.
virtual bool addVehicle(const std::string &id, ROVehicle *veh)
SUMOTime getDeparture(const std::string &vehID) const
returns departure time for the given vehicle id
OutputDevice * getRouteOutput(const bool alternative=false)
bool myHasBidiEdges
whether the network contains bidirectional railway edges
bool addDistrictEdge(const std::string tazID, const std::string edgeID, const bool isSource)
MsgHandler * myErrorHandler
handler for ignorable error messages
void writeIntermodal(const OptionsCont &options, ROIntermodalRouter &router) const
Writes the intermodal network and weights if requested.
NamedObjectCont< RONode * > myNodes
Known nodes.
const std::string getStoppingPlaceElement(const std::string &id) const
return the element name for the given stopping place id
const SUMOVehicleParameter::Stop * getStoppingPlace(const std::string &id, const SumoXMLTag category) const
Retrieves a stopping place from the network.
void addContainer(const SUMOTime depart, const std::string desc)
static void adaptIntermodalRouter(ROIntermodalRouter &router)
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
void addRestriction(const std::string &id, const SUMOVehicleClass svc, const double speed)
Adds a restriction for an edge type.
NamedObjectCont< RORouteDef * > myRoutes
Known routes.
bool furtherStored()
Returns the information whether further vehicles, persons or containers are stored.
bool checkVType(const std::string &id)
Checks whether the vehicle type (distribution) may be added.
OutputDevice * myRoutesOutput
The file to write the computed routes into.
bool addPerson(ROPerson *person)
int myWrittenRouteNo
The number of written routes.
static RONet * myInstance
Unique instance of RONet.
RORouteDef * getRouteDef(const std::string &name) const
Returns the named route definition.
SUMOTime saveAndRemoveRoutesUntil(OptionsCont &options, const RORouterProvider &provider, SUMOTime time)
Computes routes described by their definitions and saves them.
virtual bool addEdge(ROEdge *edge)
bool myDefaultTaxiTypeMayBeDeleted
Whether the default taxi type was already used or can still be replaced.
std::map< std::string, std::map< SUMOVehicleClass, double > > myRestrictions
The vehicle class specific speed restrictions.
std::map< SumoXMLTag, NamedObjectCont< SUMOVehicleParameter::Stop * > > myStoppingPlaces
Known bus / train / container stops and parking areas.
virtual bool addVehicleType(SUMOVTypeParameter *type)
Adds a read vehicle type definition to the network.
bool myHavePermissions
Whether the network contains edges which not all vehicles may pass.
bool hasPermissions() const
void setBidiEdges(const std::map< ROEdge *, std::string > &bidiMap)
add a taz for every junction unless a taz with the same id already exists
ROLane * getLane(const std::string &laneID) const
Retrieves a lane rom the network given its id.
std::multimap< const SUMOTime, const std::string > ContainerMap
Known containers.
int myDiscardedRouteNo
The number of discarded routes.
const std::map< std::string, std::pair< std::vector< std::string >, std::vector< std::string > > > & getDistricts() const
Retrieves all TAZ (districts) from the network.
VTypeDistDictType myVTypeDistDict
A distribution of vehicle types (probability->vehicle type)
std::vector< const RORoutable * > myPTVehicles
vehicles to keep for public transport routing
NamedObjectCont< ROEdge * > myEdges
Known edges.
void addNode(RONode *node)
bool addVTypeDistribution(const std::string &id, RandomDistributor< SUMOVTypeParameter * > *vehTypeDistribution)
Adds a vehicle type distribution.
void addJunctionTaz(ROAbstractEdgeBuilder &eb)
add a taz for every junction unless a taz with the same id already exists
OutputDevice * myTypesOutput
The file to write the vehicle types into.
const bool myDoPTRouting
whether to calculate routes for public transport
const bool myKeepVTypeDist
whether to keep the vtype distribution in output
virtual ~RONet()
Destructor.
const std::string getStoppingPlaceName(const std::string &id) const
return the name for the given stopping place id
std::map< std::string, std::vector< SUMOTime > > myDepartures
Departure times for randomized flows.
RONet & operator=(const RONet &src)
Invalidated assignment operator.
int getEdgeNumber() const
Returns the total number of edges the network contains including internal edges.
const NamedObjectCont< ROEdge * > & getEdgeMap() const
ROEdge * getEdgeForLaneID(const std::string &laneID) const
Retrieves an edge from the network when the lane id is given.
bool addFlow(SUMOVehicleParameter *flow, const bool randomize)
bool hasLoadedEffort() const
whether efforts were loaded from file
NamedObjectCont< SUMOVTypeParameter * > myVehicleTypes
Known vehicle types.
bool addDistrict(const std::string id, ROEdge *source, ROEdge *sink)
Base class for nodes used by the router.
A person as used by router.
A routable thing such as a vehicle or person.
Base class for a vehicle's route definition.
A vehicle as used by router.
Represents a generic random distribution.
Structure representing possible vehicle parameter.
Definition of vehicle stop (position and duration)
Structure representing possible vehicle parameter.
@ value
the parser finished reading a JSON value