38 #include <xercesc/parsers/SAXParser.hpp>
39 #include <xercesc/util/PlatformUtils.hpp>
40 #include <xercesc/util/TransService.hpp>
41 #include <xercesc/sax2/SAX2XMLReader.hpp>
58 #ifdef HAVE_INTERNAL // catchall for internal stuff
59 #include <internal/RouteAggregator.h>
60 #endif // have HAVE_INTERNAL
62 #ifdef CHECK_MEMORY_LEAKS
64 #endif // CHECK_MEMORY_LEAKS
82 WRITE_WARNING(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
84 WRITE_ERROR(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
97 ROEdge* e = myNet.getEdge(
id);
103 WRITE_WARNING(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
105 WRITE_ERROR(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
119 myLoaders(oc.exists(
"unsorted-input") && oc.getBool(
"unsorted-input") ? 0 :
DELTA_T)
131 throw ProcessError(
"Missing definition of network to load!");
134 throw ProcessError(
"The network file '" + file +
"' is not accessible.");
151 for (std::vector<std::string>::const_iterator fileIt = files.begin(); fileIt != files.end(); ++fileIt) {
153 throw ProcessError(
"The additional file '" + *fileIt +
"' is not accessible.");
185 throw ProcessError(
"No route input specified or all routes were invalid.");
201 bool endReached =
false;
202 bool errorOccured =
false;
205 for (
SUMOTime time = firstStep; time < end && !errorOccured && !endReached; time +=
DELTA_T) {
219 #ifdef HAVE_INTERNAL // catchall for internal stuff
224 RouteAggregator::processAllRoutes(net, router);
245 for (std::vector<std::string>::const_iterator fileIt = files.begin(); fileIt != files.end(); ++fileIt) {
250 std::string msg =
"The loader for " + optionName +
" from file '" + *fileIt +
"' could not be initialised;";
251 std::string reason = e.what();
252 if (reason !=
"Process Error" && reason !=
"") {
253 msg = msg +
"\n Reason: " + reason +
".";
255 msg = msg +
"\n (unknown reason).";
267 const std::string& measure,
bool useLanes) {
273 std::vector<SAXWeightsHandler::ToRetrieveDefinition*> retrieverDefs;
279 if (measure !=
"traveltime") {
280 std::string umeasure = measure;
281 if (measure ==
"CO" || measure ==
"CO2" || measure ==
"HC" || measure ==
"PMx" || measure ==
"NOx" || measure ==
"fuel") {
282 umeasure = measure +
"_perVeh";
290 for (std::vector<std::string>::const_iterator fileIt = files.begin(); fileIt != files.end(); ++fileIt) {
300 const std::map<std::string, ROEdge*>& edges = net.
getEdgeMap();
301 for (std::map<std::string, ROEdge*>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
302 (*i).second->buildTimeLines(measure);