int getVehicleClassCompoundID(const std::string& name) { int ret = SVC_IGNORING; const std::vector<std::string> names = SumoVehicleClassStrings.getStrings(); for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); it++) { if (name.find(*it) != std::string::npos) { ret = ret | (int) SumoVehicleClassStrings.get(*it); } } return ret; }
std::vector<std::string> getVehicleClassNamesList(SVCPermissions permissions) { /// @todo cache values? const std::vector<std::string> classNames = SumoVehicleClassStrings.getStrings(); std::vector<std::string> result; for (std::vector<std::string>::const_iterator it = classNames.begin(); it != classNames.end(); it++) { const int svc = (int)SumoVehicleClassStrings.get(*it); if ((svc & permissions) == svc && svc != SVC_IGNORING) { result.push_back(*it); } } return result; }
const std::vector<std::string>& getVehicleClassNamesList(SVCPermissions permissions) { // first check if it's cached if (vehicleClassNamesListCached.count(permissions) == 0) { const std::vector<std::string> classNames = SumoVehicleClassStrings.getStrings(); std::vector<std::string> result; for (std::vector<std::string>::const_iterator it = classNames.begin(); it != classNames.end(); it++) { const int svc = (int)SumoVehicleClassStrings.get(*it); if ((svc & permissions) == svc && svc != SVC_IGNORING) { result.push_back(*it); } } // add it into vehicleClassNamesListCached vehicleClassNamesListCached[permissions] = result; } return vehicleClassNamesListCached.at(permissions); }