60 #ifdef CHECK_MEMORY_LEAKS
62 #endif // CHECK_MEMORY_LEAKS
69 bool addVehiclesDirectly) :
72 myAddVehiclesDirectly(addVehiclesDirectly),
73 myCurrentVTypeDistribution(0),
74 myCurrentRouteDistribution(0) {
106 const std::string fromID = attrs.
get<std::string>(
SUMO_ATTR_FROM, pid.c_str(), ok);
109 throw ProcessError(
"The from edge '" + fromID +
"' within a ride of person '" + pid +
"' is not known.");
119 throw ProcessError(
"The start edge within for person '" + pid +
"' is not known.");
121 const std::string toID = attrs.
get<std::string>(
SUMO_ATTR_TO, pid.c_str(), ok);
124 throw ProcessError(
"The to edge '" + toID +
"' within a ride of person '" + pid +
"' is not known.");
155 arrivalPos = bs->getEndLanePosition();
176 const std::string
error =
"No connection found between '" + from->getID() +
"' and '" + to->getID() +
"' for person '" +
myVehicleParameter->
id +
"'.";
255 while (st.hasNext()) {
256 std::string vtypeID = st.next();
335 const std::string
id = vehType->
getID();
338 throw ProcessError(
"Another vehicle type (or distribution) with the id '" +
id +
"' exists.");
420 std::vector<SUMOReal> probs;
431 size_t probIndex = 0;
433 std::string routeID = st.
next();
438 const SUMOReal prob = (probs.size() > probIndex ? probs[probIndex] : 1.0);
444 if (probs.size() > 0 && probIndex != probs.size()) {
519 unsigned int quota = vehControl.
getQuota();
527 for (
unsigned int i = 1; i < quota; i++) {
531 vehicle = vehControl.
buildVehicle(newPars, route, vtype);
634 std::string errorSuffix;
664 if (ok && stop.
lane !=
"") {
666 WRITE_ERROR(
"The lane '" + stop.
lane +
"' for a stop is not known" + errorSuffix);
670 WRITE_ERROR(
"A stop must be placed on a bus stop or a lane" + errorSuffix);
684 WRITE_WARNING(
"Deprecated attribute 'pos' in description of stop" + errorSuffix);
690 WRITE_ERROR(
"Invalid start or end position for stop on lane '" + stop.
lane +
"'" + errorSuffix);