36 #include <xercesc/sax/SAXException.hpp> 37 #include <xercesc/sax/SAXParseException.hpp> 79 const std::vector<double>& turnDefs) {
85 static_cast<ROJTREdge*
>(i.second)->setTurnDefaults(turnDefs);
91 std::vector<double> ret;
93 if (defs.size() < 2) {
94 throw ProcessError(
"The defaults for turnings must be a tuple of at least two numbers divided by ','.");
96 for (std::vector<std::string>::const_iterator i = defs.begin(); i != defs.end(); ++i) {
111 if (oc.
isSet(
"turn-ratio-files")) {
113 std::vector<std::string> ratio_files = oc.
getStringVector(
"turn-ratio-files");
114 for (std::vector<std::string>::const_iterator i = ratio_files.begin(); i != ratio_files.end(); ++i) {
124 if (oc.
isSet(
"sink-edges")) {
126 for (std::vector<std::string>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
129 throw ProcessError(
"The edge '" + *i +
"' declared as a sink is not known.");
166 oc.
setApplicationDescription(
"Router for the microscopic road traffic simulation SUMO based on junction turning ratios.");
196 }
catch (XERCES_CPP_NAMESPACE::SAXParseException& e) {
199 }
catch (XERCES_CPP_NAMESPACE::SAXException& e) {
207 if (std::string(e.what()) != std::string(
"Process Error") && std::string(e.what()) != std::string(
"")) {
213 }
catch (
const std::exception& e) {
214 if (std::string(e.what()) != std::string(
"")) {
227 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.
static void getOptions(const bool commandLineOnly=false)
Parses the command line arguments and loads the configuration.
Computes routes using junction turning percentages.
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.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
static void adaptIntermodalRouter(ROIntermodalRouter &router)
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< double > getTurningDefaults(OptionsCont &oc)
void setSink(const bool isSink=true)
Sets whether the edge is a sink.
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.
static void setArgs(int argc, char **argv)
Stores the command line arguments for later parsing.
IntermodalRouter< ROEdge, ROLane, RONode, ROVehicle > ROIntermodalRouter
static OptionsCont & getOptions()
Retrieves the options.
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
void openOutput(const OptionsCont &options)
Opens the output for computed routes.
void cleanup()
closes the file output for computed routes and deletes associated threads if necessary ...
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Loader for the of turning percentages and source/sink definitions.
bool processMetaOptions(bool missingOptions)
Checks for help and configuration output, returns whether we should exit.
SUMOTime string2time(const std::string &r)
An edge the jtr-router may route through.
virtual void loadNet(RONet &toFill, ROAbstractEdgeBuilder &eb)
Loads the network.
int main(int argc, char **argv)
static void setUsingJTRR()
void initNet(RONet &net, ROLoader &loader, const std::vector< double > &turnDefs)
const NamedObjectCont< ROEdge * > & getEdgeMap() const
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...
int getEdgeNumber() const
Returns the total number of edges the network contains including internal edges.
void processRoutes(const SUMOTime start, const SUMOTime end, const SUMOTime increment, RONet &net, const RORouterProvider &provider)
Loads routes from all previously build route loaders.
void inform(std::string msg, bool addType=true)
adds a new error to the list
A storage for options typed value containers)
static double _2double(const E *const data)
converts a char-type array into the double value described by it
static void initRandGlobal(std::mt19937 *which=0)
Reads the given random number options and initialises the random number generator in accordance...
void clear()
Clears information whether an error occured previously.
static void initOutputOptions()
void computeRoutes(RONet &net, ROLoader &loader, OptionsCont &oc)
static std::string _2str(const int var)
convert int to string
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
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)