LTL
2.0.x
|
Generic parser object for options. More...
Public Member Functions | |
OptionParser (OptionReader *reader) | |
construct using an OptionReader , i.e. either a CommandLineReader or a ConfigFileReader . More... | |
virtual | ~OptionParser () |
OptionParser (const OptionParser &other) | |
copy ctor. More... | |
void | deleteOptions (void) |
delete all the Option objects we are holding. More... | |
void | changeReader (OptionReader *reader) |
void | addOption (Option *option) |
add an option to our list of accepted options. More... | |
Option * | getOption (const string &name) |
retrieve an option by its name. More... | |
const list< string > | getOptionNames () const |
retrieve a list of the option names. More... | |
void | parseOptions () throw ( UException ) |
read the options, parse them, and set their values. More... | |
void | printUsage (ostream &os) const |
void | writeConfig (const string &filename, const bool withComment=true, const bool order_by_n=true) const throw ( UException ) |
string | toString (const bool withComment=false) const throw ( UException ) |
get a string representation. More... | |
Protected Types | |
typedef map< string, Option * > | omap |
typedef map< int, Option * > | onmap |
Protected Attributes | |
OptionReader * | reader_ |
the OptionReader object we will use to read-in the options, either a CommandLineReader or a ConfigFileReader More... | |
omap | options_ |
holds all options we know of indexed by name More... | |
omap | cmd_options_ |
index of options by command line character More... | |
onmap | n_options_ |
holds options indexed by order of definition More... | |
int | nopts_ |
number of options More... | |
Friends | |
ostream & | operator<< (ostream &os, const OptionParser &op) |
Related Functions | |
(Note that these are not member functions.) | |
ostream & | operator<< (ostream &os, const OptionParser &op) |
Generic parser object for options.
Uses an object of type util::OptionReader to retrieve the options from whereever (config file, command-line, etc.)
|
protected |
|
protected |
util::OptionParser::OptionParser | ( | OptionReader * | reader | ) |
construct using an OptionReader
, i.e. either a CommandLineReader
or a ConfigFileReader
.
|
virtual |
util::OptionParser::OptionParser | ( | const OptionParser & | other | ) |
copy ctor.
void util::OptionParser::deleteOptions | ( | void | ) |
delete all the Option
objects we are holding.
void util::OptionParser::changeReader | ( | OptionReader * | reader | ) |
switch the OptionReader
to a different one, used when first reading a config file and then allowing to override option on the command line.
void util::OptionParser::addOption | ( | Option * | option | ) |
add an option to our list of accepted options.
Option* util::OptionParser::getOption | ( | const string & | name | ) |
retrieve an option by its name.
const list<string> util::OptionParser::getOptionNames | ( | ) | const |
retrieve a list of the option names.
void util::OptionParser::parseOptions | ( | ) | ||
throw | ( | UException | ||
) |
read the options, parse them, and set their values.
void util::OptionParser::printUsage | ( | ostream & | os | ) | const |
pretty-print the options, their descriptions, and default values in a format similar to man pages. automatic formatting and line-breaking. very nice!
void util::OptionParser::writeConfig | ( | const string & | filename, |
const bool | withComment = true , |
||
const bool | order_by_n = true |
||
) | const | ||
throw | ( | UException | |
) |
write out the options in a format compatible with the ConfigFileReader
. Convenient way to create a default config file. order_by_n
specifies the order the options were added, otherwise alphabetic by name.
string util::OptionParser::toString | ( | const bool | withComment = false | ) | const |
throw | ( | UException | |||
) |
get a string representation.
|
friend |
|
protected |
the OptionReader
object we will use to read-in the options, either a CommandLineReader
or a ConfigFileReader
|
protected |
holds all options we know of indexed by name
|
protected |
index of options by command line character
|
protected |
holds options indexed by order of definition
|
protected |
number of options