37 #include <xercesc/sax/SAXException.hpp>
38 #include <xercesc/sax/SAXParseException.hpp>
65 #ifdef CHECK_MEMORY_LEAKS
67 #endif // CHECK_MEMORY_LEAKS
83 const std::vector<SUMOReal>& turnDefs) {
88 const std::map<std::string, ROEdge*>& edges = net.
getEdgeMap();
89 for (std::map<std::string, ROEdge*>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
90 static_cast<ROJTREdge*
>((*i).second)->setTurnDefaults(turnDefs);
96 std::vector<SUMOReal> ret;
98 if (defs.size() < 2) {
99 throw ProcessError(
"The defaults for turnings must be a tuple of at least two numbers divided by ','.");
101 for (std::vector<std::string>::const_iterator i = defs.begin(); i != defs.end(); ++i) {
116 if (oc.
isSet(
"turn-ratio-files")) {
118 std::vector<std::string> ratio_files = oc.
getStringVector(
"turn-ratio-files");
119 for (std::vector<std::string>::const_iterator i = ratio_files.begin(); i != ratio_files.end(); ++i) {
129 if (oc.
isSet(
"sink-edges")) {
131 for (std::vector<std::string>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
134 throw ProcessError(
"The edge '" + *i +
"' declared as a sink is not known.");
169 oc.
setApplicationDescription(
"Router for the microscopic road traffic simulation SUMO based on junction turning ratios.");
199 }
catch (XERCES_CPP_NAMESPACE::SAXParseException& e) {
202 }
catch (XERCES_CPP_NAMESPACE::SAXException& e) {
210 if (std::string(e.what()) != std::string(
"Process Error") && std::string(e.what()) != std::string(
"")) {
216 }
catch (
const std::exception& e) {
217 if (std::string(e.what()) != std::string(
"")) {
230 std::cout <<
"Success." << std::endl;
std::vector< std::string > getStringVector(const std::string &name) const
Returns the list of string-vector-value of the named option (only for Option_String) ...
static void init()
Initialises the xml-subsystem.
static MsgHandler * getErrorInstance()
Returns the instance to add errors to.
Computes routes using junction turning percentages.
size_t getEdgeNo() const
Returns the total number of edges the network contains including internal edges.
static SUMOReal _2SUMOReal(const E *const data)
void openRoutes(RONet &net)
Builds and opens all route loaders.
static void setValidation(const std::string &validationScheme, const std::string &netValidationScheme)
Enables or disables validation.
void initNet(RONet &net, ROLoader &loader, OptionsCont &oc)
void setApplicationDescription(const std::string &appDesc)
Sets the application description.
ROEdge * getEdge(const std::string &name) const
Retrieves an edge from the network.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
std::vector< SUMOReal > getTurningDefaults(OptionsCont &oc)
SUMOReal getFloat(const std::string &name) const
Returns the SUMOReal-value of the named option (only for Option_Float)
void setFunc(EdgeFunc func)
Sets the function of the edge.
static bool runParser(GenericSAXHandler &handler, const std::string &file, const bool isNet=false)
Runs the given handler on the given file; returns if everything's ok.
static void close()
Closes all of an applications subsystems.
const std::map< std::string, ROEdge * > & getEdgeMap() const
static void setArgs(int argc, char **argv)
Stores the command line arguments for later parsing.
static OptionsCont & getOptions()
Retrieves the options.
static void initRandGlobal(MTRand *which=0)
Reads the given random number options and initialises the random number generator in accordance...
void openOutput(const std::string &filename, const std::string altFilename, const std::string typeFilename)
Opens the output for computed routes.
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
An edge where vehicles disappear (no vehicle may leave this edge)
Loader for the of turning percentages and source/sink definitions.
static std::string _2str(const E *const data)
bool processMetaOptions(bool missingOptions)
Checks for help and configuration output, returns whether we should exit.
const std::string getBuildName(const std::string &version)
attach some build flags to the version string
SUMOTime string2time(const std::string &r)
An edge the jtr-router may route through.
std::string toString(const T &t, std::streamsize accuracy=OUTPUT_ACCURACY)
void computeRoutes(RONet &net, ROLoader &loader, OptionsCont &oc)
virtual void loadNet(RONet &toFill, ROAbstractEdgeBuilder &eb)
Loads the network.
static void setUsingJTRR()
static void getOptions()
Parses the command line arguments and loads the configuration.
The router's network representation.
static void fillOptions()
Inserts options used by jtrrouter into the OptionsCont-singleton.
static bool checkOptions()
Checks set options from the OptionsCont-singleton for being valid for usage within jtrrouter...
void inform(std::string msg, bool addType=true)
adds a new error to the list
A storage for options typed value containers)
void processRoutes(const SUMOTime start, const SUMOTime end, const SUMOTime increment, RONet &net, SUMOAbstractRouter< ROEdge, ROVehicle > &router)
Loads routes from all previously build route loaders.
void clear()
Clears information whether an error occured previously.
void cleanup(SUMOAbstractRouter< ROEdge, ROVehicle > *router)
closes the file output for computed routes and deletes routers and associated threads if necessary ...
static void initOutputOptions()
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
int main(int argc, char *argv[])
Interface for building instances of jtrrouter-edges.
void setApplicationName(const std::string &appName, const std::string &fullName)
Sets the application name.
void loadJTRDefinitions(RONet &net, OptionsCont &oc)