38 #include <xercesc/parsers/SAXParser.hpp>
39 #include <xercesc/util/PlatformUtils.hpp>
40 #include <xercesc/util/TransService.hpp>
41 #include <xercesc/sax2/SAX2XMLReader.hpp>
59 #ifdef HAVE_MESOSIM // catchall for internal stuff
60 #include <internal/RouteAggregator.h>
61 #endif // have HAVE_MESOSIM
63 #ifdef CHECK_MEMORY_LEAKS
65 #endif // CHECK_MEMORY_LEAKS
82 WRITE_ERROR(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
94 ROEdge* e = myNet.getEdge(
id);
99 WRITE_ERROR(
"Trying to set a weight for the unknown edge '" +
id +
"'.");
124 throw ProcessError(
"Missing definition of network to load!");
127 throw ProcessError(
"The network file '" + file +
"' could not be found.");
141 throw ProcessError(
"The districts file '" + file +
"' could not be found.");
173 for (RouteLoaderCont::iterator i =
myHandler.begin(); ok && i !=
myHandler.end(); i++) {
193 bool endReached =
false;
194 bool errorOccured =
false;
198 for (; time < end && !errorOccured && !endReached; time +=
DELTA_T) {
204 for (RouteLoaderCont::iterator i =
myHandler.begin(); endReached && i !=
myHandler.end(); i++) {
205 if (!(*i)->ended()) {
219 RouteLoaderCont::iterator i;
224 if ((*i)->readRoutesAtLeastUntil(end)) {
240 RouteLoaderCont::const_iterator i =
myHandler.begin();
241 SUMOTime ret = (*i)->getLastReadTimeStep();
244 SUMOTime akt = (*i)->getLastReadTimeStep();
256 long absNo = end - start;
258 for (RouteLoaderCont::iterator i =
myHandler.begin(); ok && i !=
myHandler.end(); i++) {
263 for (; time < end;) {
276 #ifndef HAVE_MESOSIM // catchall for internal stuff
280 for (RouteLoaderCont::iterator i =
myHandler.begin(); ok && i !=
myHandler.end(); i++) {
304 for (std::vector<std::string>::const_iterator fileIt = files.begin(); fileIt != files.end(); ++fileIt) {
310 std::string msg =
"The loader for " + optionName +
" from file '" + *fileIt +
"' could not be initialised;";
311 std::string reason = e.what();
312 if (reason !=
"Process Error" && reason !=
"") {
313 msg = msg +
"\n Reason: " + reason +
".";
315 msg = msg +
"\n (unknown reason).";
327 const std::string& file,
329 if (optionName ==
"route-files" || optionName ==
"alternative-files") {
336 if (optionName ==
"trip-files") {
341 if (optionName ==
"flow-files") {
352 const std::string& measure,
bool useLanes) {
358 std::vector<SAXWeightsHandler::ToRetrieveDefinition*> retrieverDefs;
364 if (measure !=
"traveltime") {
365 std::string umeasure = measure;
366 if (measure ==
"CO" || measure ==
"CO2" || measure ==
"HC" || measure ==
"PMx" || measure ==
"NOx" || measure ==
"fuel") {
367 umeasure = measure +
"_perVeh";
375 for (std::vector<std::string>::const_iterator fileIt = files.begin(); fileIt != files.end(); ++fileIt) {
385 const std::map<std::string, ROEdge*> &edges = net.
getEdgeMap();
386 for (std::map<std::string, ROEdge*>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
387 (*i).second->buildTimeLines(measure);
404 for (RouteLoaderCont::const_iterator i =
myHandler.begin(); i !=
myHandler.end(); ++i) {