SVCPermissions parseVehicleClasses(const std::string& allowedS) { if (allowedS == "all") { return SVCAll; } // check if allowedS was previously cached if (parseVehicleClassesCached.count(allowedS) == 0) { SVCPermissions result = 0; StringTokenizer sta(allowedS, " "); while (sta.hasNext()) { const std::string s = sta.next(); if (!SumoVehicleClassStrings.hasString(s)) { WRITE_ERROR("Unknown vehicle class '" + s + "' encountered."); } else { const SUMOVehicleClass vc = getVehicleClassID(s); const std::string& realName = SumoVehicleClassStrings.getString(vc); if (realName != s) { deprecatedVehicleClassesSeen.insert(s); } result |= vc; } } // save parsed vehicle class cached parseVehicleClassesCached[allowedS] = result; } return parseVehicleClassesCached.at(allowedS); }
SUMOVehicleClass getVehicleClassID(const std::string& name) { if (SumoVehicleClassStrings.hasString(name)) { return SumoVehicleClassStrings.get(name); } throw InvalidArgument("Unknown vehicle class '" + name + "'."); }
SUMOVehicleShape getVehicleShapeID(const std::string& name) { if (SumoVehicleShapeStrings.hasString(name)) { return SumoVehicleShapeStrings.get(name); } else { throw InvalidArgument("Unknown vehicle shape '" + name + "'."); } }
int NWWriter_OpenDrive::getID(const std::string& origID, StringBijection<int>& map, int& lastID) { if (map.hasString(origID)) { return map.get(origID); } map.insert(origID, lastID++); return lastID - 1; }
bool canParseVehicleClasses(const std::string& classes) { if (classes == "all") { return true; } StringTokenizer sta(classes, " "); while (sta.hasNext()) { if (!SumoVehicleClassStrings.hasString(sta.next())) { return false; } } return true; }
bool canParseVehicleClasses(const std::string& classes) { if (classes == "all") { return true; } // check if was previously cached if (parseVehicleClassesCached.count(classes) != 0) { return true; } StringTokenizer sta(classes, " "); while (sta.hasNext()) { if (!SumoVehicleClassStrings.hasString(sta.next())) { return false; } } return true; }
bool canParseVehicleShape(const std::string& shape) { return SumoVehicleShapeStrings.hasString(shape); }