SUMO - Simulation of Urban MObility
OptionsIO Class Reference

#include <OptionsIO.h>

Collaboration diagram for OptionsIO:
Collaboration graph

Static Public Member Functions

static int getArgC ()
 Return the number of command line arguments. More...
 
static void getOptions (const bool commandLineOnly=false)
 Parses the command line arguments and loads the configuration. More...
 
static void loadConfiguration ()
 Loads and parses the configuration. More...
 
static void setArgs (int argc, char **argv)
 Stores the command line arguments for later parsing. More...
 
static void setArgs (const std::vector< std::string > &args)
 Stores faked command line arguments for later parsing. More...
 

Static Private Member Functions

static std::string getRoot (const std::string &filename)
 Retrieves the XML root element of a supposed configuration or net. More...
 

Static Private Attributes

static int myArgC
 
static char ** myArgV
 

Detailed Description

Helping methods for parsing of command line arguments and reading a configuration file. Any errors are reported by throwing a ProcessError exception which contains a description about the failure.

Definition at line 56 of file OptionsIO.h.

Member Function Documentation

◆ getArgC()

static int OptionsIO::getArgC ( )
inlinestatic

Return the number of command line arguments.

Definition at line 73 of file OptionsIO.h.

References getOptions(), getRoot(), loadConfiguration(), and myArgC.

Referenced by NLBuilder::loadAndRun().

◆ getOptions()

void OptionsIO::getOptions ( const bool  commandLineOnly = false)
static

Parses the command line arguments and loads the configuration.

Command line arguments are parsed, first, throwing a ProcessError if something fails. Then options are reset to being writeable and the configuration is loaded using "loadConfiguration". After this, the options are reset again and the command line arguments are reparsed.

This workflow allows to read the name of a configuration file from command line arguments, first, then to load values from this configuration file and reset them by other values from the command line.

Definition at line 82 of file OptionsIO.cpp.

References OptionsCont::getOptions(), getRoot(), loadConfiguration(), myArgC, myArgV, OptionsParser::parse(), and OptionsCont::resetWritable().

Referenced by getArgC(), GNELoadThread::initOptions(), NLBuilder::loadAndRun(), main(), and GUILoadThread::run().

◆ getRoot()

std::string OptionsIO::getRoot ( const std::string &  filename)
staticprivate

Retrieves the XML root element of a supposed configuration or net.

Parameters
[in]filenamethe XML file to parse
Returns
the root element if any

Definition at line 141 of file OptionsIO.cpp.

References TplConvert::_2str(), OptionsLoader::errorOccured(), and OptionsLoader::getItem().

Referenced by getArgC(), and getOptions().

◆ loadConfiguration()

void OptionsIO::loadConfiguration ( )
static

Loads and parses the configuration.

The name of the configuration file is extracted from the global OptionsCont ("configuration-file" is used as the name of the option to get the name of the configuration).

Definition at line 108 of file OptionsIO.cpp.

References TplConvert::_2str(), OptionsLoader::errorOccured(), OptionsCont::exists(), OptionsCont::getOptions(), OptionsCont::getString(), FileHelpers::isReadable(), OptionsCont::isSet(), PROGRESS_BEGIN_MESSAGE, PROGRESS_DONE_MESSAGE, and OptionsCont::relocateFiles().

Referenced by getArgC(), and getOptions().

◆ setArgs() [1/2]

void OptionsIO::setArgs ( int  argc,
char **  argv 
)
static

Stores the command line arguments for later parsing.

Parameters
[in]argcnumber of arguments given at the command line
[in]argvarguments given at the command line

Definition at line 62 of file OptionsIO.cpp.

References myArgC, and myArgV.

Referenced by GUILoadThread::loadConfigOrNet(), GNELoadThread::loadConfigOrNet(), main(), GUIRunThread::makeStep(), and MSNet::simulate().

◆ setArgs() [2/2]

void OptionsIO::setArgs ( const std::vector< std::string > &  args)
static

Stores faked command line arguments for later parsing.

Parameters
[in]argsarguments given as substitute for the command line

Definition at line 69 of file OptionsIO.cpp.

References myArgC, and myArgV.

Field Documentation

◆ myArgC

int OptionsIO::myArgC
staticprivate

Definition at line 112 of file OptionsIO.h.

Referenced by getArgC(), getOptions(), and setArgs().

◆ myArgV

char ** OptionsIO::myArgV
staticprivate

Definition at line 113 of file OptionsIO.h.

Referenced by getOptions(), and setArgs().


The documentation for this class was generated from the following files: