void MSRouteHandler::myEndElement(SumoXMLTag element) throw(ProcessError) { switch (element) { case SUMO_TAG_ROUTE: closeRoute(); break; case SUMO_TAG_PERSON: closePerson(); delete myVehicleParameter; myVehicleParameter = 0; break; case SUMO_TAG_VEHICLE: if (myVehicleParameter->repetitionNumber>0) { myVehicleParameter->repetitionNumber++; // for backwards compatibility // it is a flow, thus no break here } else { closeVehicle(); delete myVehicleParameter; myVehicleParameter = 0; break; } case SUMO_TAG_FLOW: closeFlow(); break; case SUMO_TAG_VTYPE_DISTRIBUTION: closeVehicleTypeDistribution(); break; case SUMO_TAG_ROUTE_DISTRIBUTION: closeRouteDistribution(); break; case SUMO_TAG_VTYPE: { SUMOVehicleParserHelper::closeVTypeParsing(*myCurrentVType); MSVehicleType *vehType = MSVehicleType::build(*myCurrentVType); delete myCurrentVType; myCurrentVType = 0; if (!MSNet::getInstance()->getVehicleControl().addVType(vehType)) { std::string id = vehType->getID(); delete vehType; #ifdef HAVE_MESOSIM if (!MSGlobals::gStateLoaded) { #endif throw ProcessError("Another vehicle type (or distribution) with the id '" + id + "' exists."); #ifdef HAVE_MESOSIM } #endif } else { if (myCurrentVTypeDistribution != 0) { myCurrentVTypeDistribution->add(vehType->getDefaultProbability(), vehType); } } } break; default: break; } }
void SUMORouteHandler::myEndElement(int element) { switch (element) { case SUMO_TAG_ROUTE: closeRoute(); break; case SUMO_TAG_PERSON: closePerson(); delete myVehicleParameter; myVehicleParameter = 0; break; case SUMO_TAG_CONTAINER: closeContainer(); delete myVehicleParameter; myVehicleParameter = 0; break; case SUMO_TAG_VEHICLE: if (myVehicleParameter->repetitionNumber > 0) { myVehicleParameter->repetitionNumber++; // for backwards compatibility // it is a flow, thus no break here } else { closeVehicle(); delete myVehicleParameter; myVehicleParameter = 0; break; } case SUMO_TAG_FLOW: closeFlow(); break; case SUMO_TAG_VTYPE_DISTRIBUTION: closeVehicleTypeDistribution(); break; case SUMO_TAG_ROUTE_DISTRIBUTION: closeRouteDistribution(); break; case SUMO_TAG_VTYPE: SUMOVehicleParserHelper::closeVTypeParsing(*myCurrentVType); break; case SUMO_TAG_INTERVAL: myBeginDefault = string2time(OptionsCont::getOptions().getString("begin")); myEndDefault = string2time(OptionsCont::getOptions().getString("end")); break; default: break; } }
void SUMORouteHandler::myEndElement(int element) { switch (element) { case SUMO_TAG_ROUTE: closeRoute(); break; case SUMO_TAG_PERSON: closePerson(); delete myVehicleParameter; myVehicleParameter = 0; break; case SUMO_TAG_VEHICLE: if (myVehicleParameter->repetitionNumber > 0) { myVehicleParameter->repetitionNumber++; // for backwards compatibility // it is a flow, thus no break here } else { closeVehicle(); delete myVehicleParameter; myVehicleParameter = 0; break; } case SUMO_TAG_FLOW: closeFlow(); break; case SUMO_TAG_VTYPE_DISTRIBUTION: closeVehicleTypeDistribution(); break; case SUMO_TAG_ROUTE_DISTRIBUTION: closeRouteDistribution(); break; case SUMO_TAG_VTYPE: SUMOVehicleParserHelper::closeVTypeParsing(*myCurrentVType); break; default: break; } }