53 #ifdef CHECK_MEMORY_LEAKS
55 #endif // CHECK_MEMORY_LEAKS
63 const bool emptyDestinationsAllowed,
64 const bool ignoreErrors) :
66 myPedestrianRouter(0),
69 myActiveContainerPlan(0),
71 myActiveContainerPlanSize(0),
72 myTryRepair(tryRepair),
73 myEmptyDestinationsAllowed(emptyDestinationsAllowed),
75 myCurrentVTypeDistribution(0),
76 myCurrentAlternatives(0) {
143 (*myActivePlan) << attrs;
147 (*myActivePlan) << attrs;
157 (*myActivePlan) << attrs;
169 (*myActiveContainerPlan) << attrs;
173 (*myActiveContainerPlan) << attrs;
183 (*myActiveContainerPlan) << attrs;
220 while (st.hasNext()) {
280 WRITE_WARNING(
"No probability for a route in '" + rid +
"', using default.");
392 if (ok && index < 0) {
402 const std::string routeID = st.
next();
450 if (route->
getID()[0] !=
'!') {
544 (*myActivePlan) << attrs;
551 (*myActiveContainerPlan) << attrs;
556 std::string errorSuffix;
582 if (containerstop == 0) {
592 if (!ok || stop.
lane ==
"") {
593 myErrorOutput->
inform(
"A stop must be placed on a bus stop, a container stop or a lane" + errorSuffix);
623 const std::string& rid) {
625 std::istringstream in(desc, std::ios::binary);
631 const std::string
id = st.next();
636 into.push_back(edge);
656 +
"\n The route can not be build.");
662 +
"\n The route can not be build.");
const int VEHPARS_TO_TAZ_SET
RORouteDef * myCurrentAlternatives
The currently parsed route alternatives.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
static MsgHandler * getErrorInstance()
Returns the instance to add errors to.
SUMOReal myCurrentCosts
The currently parsed route costs.
virtual void myEndElement(int element)
Called when a closing tag occurs.
void closeVehicleTypeDistribution()
std::string containerstop
(Optional) container stop if one is assigned to the stop
int repetitionNumber
The number of times the vehicle shall be repeatedly inserted.
void closePerson()
Ends the processing of a person.
std::string vtypeid
The vehicle's type id.
void openRouteDistribution(const SUMOSAXAttributes &attrs)
unsigned int getNumSuccessors() const
Returns the number of edges this edge is connected to.
static void parseVTypeEmbedded(SUMOVTypeParameter &into, int element, const SUMOSAXAttributes &attrs, bool fromVType=false)
Parses an element embedded in vtype definition.
SUMOVehicleParameter * myVehicleParameter
Parameter of the current vehicle, trip, person, container or flow.
ROPedestrianRouterDijkstra * myPedestrianRouter
Structure representing possible vehicle parameter.
bool add(SUMOReal prob, T val, bool checkDuplicates=true)
Adds a value with an assigned probability to the distribution.
ConstROEdgeVector myActiveRoute
The current route.
void addAlternativeDef(const RORouteDef *alternative)
Adds an alternative loaded from the file.
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
static bool checkStopPos(SUMOReal &startPos, SUMOReal &endPos, const SUMOReal laneLength, const SUMOReal minLength, const bool friendlyPos)
check start and end position of a stop
SUMOVTypeParameter * myCurrentVType
The currently parsed vehicle type.
int repetitionsDone
The number of times the vehicle was already inserted.
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
const SUMOReal DEFAULT_PEDESTRIAN_SPEED
MsgHandler *const myErrorOutput
Depending on the "ignore-errors" option different outputs are used.
const SUMOVehicleParameter::Stop * getContainerStop(const std::string &id) const
Retrieves a container stop from the network.
const SUMOReal DEFAULT_VEH_PROB
SUMOReal myActiveRouteProbability
The probability of the current route.
virtual void myEndElement(int element)
Called when a closing tag occurs.
void registerLastDepart()
save last depart (only to be used if vehicle is not discarded)
int myActiveContainerPlanSize
The number of stages in myActiveContainerPlan.
std::vector< const ROEdge * > ConstROEdgeVector
void openVehicleTypeDistribution(const SUMOSAXAttributes &attrs)
std::string myActiveRouteID
The id of the current route.
int myInsertStopEdgesAt
where stop edges can be inserted into the current route (-1 means no insertion)
SUMOReal repetitionOffset
The time offset between vehicle reinsertions.
const std::string DEFAULT_VTYPE_ID
void closeVehicle()
Ends the processing of a vehicle.
virtual bool hasAttribute(int id) const =0
Returns the information whether the named (by its enum-value) attribute is within the current list...
#define WRITE_WARNING(msg)
virtual bool addVehicleType(SUMOVTypeParameter *type)
Adds a read vehicle type definition to the network.
RandomDistributor< SUMOVTypeParameter * > * myCurrentVTypeDistribution
The currently parsed distribution of vehicle types (probability->vehicle type)
virtual bool addVehicle(const std::string &id, ROVehicle *veh)
static OptionsCont & getOptions()
Retrieves the options.
std::string toTaz
The vehicle's destination zone (district)
std::vector< Stop > stops
List of the stops the vehicle will make.
RORouteHandler(RONet &net, const std::string &file, const bool tryRepair, const bool emptyDestinationsAllowed, const bool ignoreErrors)
standard constructor
RONet & myNet
The current route.
static SUMOReal interpretEdgePos(SUMOReal pos, SUMOReal maximumValue, SumoXMLAttr attr, const std::string &id)
Interprets negative edge positions and fits them onto a given edge.
const SUMOVehicleParameter::Stop * getBusStop(const std::string &id) const
Retrieves a bus stop from the network.
std::string busstop
(Optional) bus stop if one is assigned to the stop
const std::string & getID() const
Returns the id.
bool addVTypeDistribution(const std::string &id, RandomDistributor< SUMOVTypeParameter * > *vehTypeDistribution)
Adds a vehicle type distribution.
A vehicle as used by router.
void compute(const E *from, const E *to, SUMOReal departPos, SUMOReal arrivalPos, SUMOReal speed, SUMOTime msTime, const N *onlyNode, std::vector< const E * > &into, bool allEdges=false)
Builds the route between the given edges using the minimum effort at the given time The definition of...
bool addRouteDef(RORouteDef *def)
SUMOReal startPos
The stopping position start.
std::string routeid
The vehicle's route id.
Encapsulated SAX-Attributes.
bool wasSet(int what) const
Returns whether the given parameter was set.
SUMOReal endPos
The stopping position end.
void addContainer(const SUMOTime depart, const std::string desc)
void parseEdges(const std::string &desc, ConstROEdgeVector &into, const std::string &rid)
Parse edges from strings.
SUMOTime depart
The vehicle's departure time.
void addPerson(const SUMOTime depart, const std::string desc)
DepartDefinition departProcedure
Information how the vehicle shall choose the depart time.
SUMOTime string2time(const std::string &r)
void addStop(const SUMOSAXAttributes &attrs)
Processing of a stop.
std::string getString()
Returns the current content as a string.
int myActivePlanSize
The number of stages in myActivePlan.
std::string fromTaz
The vehicle's origin zone (district)
An edge representing a whole district.
PedestrianRouterDijkstra< ROEdge, ROLane, RONode > ROPedestrianRouterDijkstra
the router for pedestrians
SUMOTime getSUMOTimeReporting(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is a SUMOTime.
A basic edge for routing applications.
const int VEHPARS_FROM_TAZ_SET
std::string lane
The lane to stop at.
Parser for routes during their loading.
void closeContainer()
Ends the processing of a container.
SUMOReal getOverallProb() const
Return the sum of the probabilites assigned to the members.
std::vector< SUMOVehicleParameter::Stop > myActiveRouteStops
List of the stops on the parsed route.
The router's network representation.
void openRoute(const SUMOSAXAttributes &attrs)
virtual void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
SUMOReal getLength() const
Returns the length of the edge.
RORouteDef * copy(const std::string &id) const
Returns a deep copy of the route definition.
SUMOReal defaultProbability
The probability when being added to a distribution without an explicit probability.
Definition of vehicle stop (position and duration)
bool parseStop(SUMOVehicleParameter::Stop &stop, const SUMOSAXAttributes &attrs, std::string errorSuffix, MsgHandler *const errorOutput)
parses attributes common to all stops
const bool myTryRepair
Information whether routes shall be repaired.
void inform(std::string msg, bool addType=true)
adds a new error to the list
OutputDevice_String * myActiveContainerPlan
The plan of the current container.
Base class for a vehicle's route definition.
unsigned int getNumPredecessors() const
Returns the number of edges connected to this edge.
std::string id
The vehicle type's id.
void addLoadedAlternative(RORoute *alternative)
Adds a single alternative loaded from the file An alternative may also be generated during DUA...
void closeRoute(const bool mayBeDisconnected=false)
OutputDevice_String * myActivePlan
The plan of the current person.
const RGBColor * myActiveRouteColor
The currently parsed route's color.
virtual ~RORouteHandler()
standard destructor
static void readEdgeVector(std::istream &in, std::vector< const E * > &edges, const std::string &rid)
Reads an edge vector binary.
Static storage of an output device and its base (abstract) implementation.
bool closeTag()
Closes the most recently opened tag.
SUMOVTypeParameter * getVehicleTypeSecure(const std::string &id)
Retrieves the named vehicle type.
bool routePedestrian(const SUMOSAXAttributes &attrs, OutputDevice &plan)
route a walking person and write the corresponding walk element (return whether sucessful) ...
T getOpt(int attr, const char *objectid, bool &ok, T defaultValue, bool report=true) const
Tries to read given attribute assuming it is an int.
void closeFlow()
Ends the processing of a flow.
T get(int attr, const char *objectid, bool &ok, bool report=true) const
Tries to read given attribute assuming it is an int.
bool addFlow(SUMOVehicleParameter *flow, const bool randomize)
std::string myActiveRouteRefID
The id of the route the current route references to.
void parseFromViaTo(std::string element, const SUMOSAXAttributes &attrs)
Called for parsing from and to and the corresponding taz attributes.
RORouteDef * getRouteDef(const std::string &name) const
Returns the named route definition.
SUMOReal getOverallProb() const
Returns the sum of the probablities of the contained routes.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
A complete router's route.
An output device that encapsulates an ofstream.
void closeRouteDistribution()
std::string myCurrentVTypeDistributionID
The id of the currently parsed vehicle type distribution.
std::string id
The vehicle's id.