Dune::ParameterTreeParser Class Reference
[Common]

Parsers to set up a ParameterTree from various input sources. More...

#include <dune/common/parametertreeparser.hh>

List of all members.

Static Public Member Functions

static void readOptions (int argc, char *argv[], ParameterTree &pt)
 parse command line options and build hierarchical ParameterTree structure
static void readNamedOptions (int argc, char *argv[], ParameterTree &pt, std::vector< std::string > keywords, unsigned int required=std::numeric_limits< unsigned int >::max(), bool allow_more=true, bool overwrite=true, std::vector< std::string > help=std::vector< std::string >())
 read [named] command line options and build hierarchical ParameterTree structure
Parsing methods for the INITree file format

INITree files should look like this

     * # this file configures fruit colors in fruitsalad
     *
     *
     * #these are no fruit but could also appear in fruit salad
     * honeydewmelon = yellow
     * watermelon = green
     *
     * fruit.tropicalfruit.orange = orange
     *
     * [fruit]
     * strawberry = red
     * pomegranate = red
     *
     * [fruit.pipfruit]
     * apple = green/red/yellow
     * pear = green
     *
     * [fruit.stonefruit]
     * cherry = red
     * plum = purple
     *
     * 

If a '[prefix]' statement appears all following entries use this prefix until the next '[prefix]' statement. Fruitsalads for example contain:

     * honeydewmelon = yellow
     * fruit.tropicalfruit.orange = orange
     * fruit.pipfruit.apple = green/red/yellow
     * fruit.stonefruit.cherry = red
     * 

All keys with a common 'prefix.' belong to the same substructure called 'prefix'. Leading and trailing spaces and tabs are removed from the values unless you use single or double quotes around them. Using single or double quotes you can also have multiline values.



static void readINITree (std::istream &in, ParameterTree &pt, bool overwrite)
 parse C++ stream
static void readINITree (std::istream &in, ParameterTree &pt, const std::string srcname="stream", bool overwrite=true)
 parse C++ stream
static void readINITree (std::string file, ParameterTree &pt, bool overwrite=true)
 parse file

Detailed Description

Parsers to set up a ParameterTree from various input sources.


Member Function Documentation

void Dune::ParameterTreeParser::readINITree ( std::string  file,
ParameterTree pt,
bool  overwrite = true 
) [static]

parse file

Parses file with given name and build hierarchical config structure.

Parameters:
file filename
[out] pt The parameter tree to store the config structure.
overwrite Whether to overwrite already existing values. If false, values in the stream will be ignored if the key is already present.
void Dune::ParameterTreeParser::readINITree ( std::istream &  in,
ParameterTree pt,
const std::string  srcname = "stream",
bool  overwrite = true 
) [static]

parse C++ stream

Parses C++ stream and build hierarchical config structure.

Parameters:
in The stream to parse
[out] pt The parameter tree to store the config structure.
srcname Name of the configuration source for error messages, "stdin" or a filename.
overwrite Whether to overwrite already existing values. If false, values in the stream will be ignored if the key is already present.
void Dune::ParameterTreeParser::readINITree ( std::istream &  in,
ParameterTree pt,
bool  overwrite 
) [static]

parse C++ stream

Parses C++ stream and build hierarchical config structure.

Parameters:
in The stream to parse
[out] pt The parameter tree to store the config structure.
overwrite Whether to overwrite already existing values. If false, values in the stream will be ignored if the key is already present.
Note:
This method is identical to parseStream(std::istream&, const std::string&, bool) with the exception that that method allows one to give a custom name for the stream.
void Dune::ParameterTreeParser::readNamedOptions ( int  argc,
char *  argv[],
ParameterTree pt,
std::vector< std::string >  keywords,
unsigned int  required = std::numeric_limits<unsigned int>::max(),
bool  allow_more = true,
bool  overwrite = true,
std::vector< std::string >  help = std::vector<std::string>() 
) [static]

read [named] command line options and build hierarchical ParameterTree structure

Similar to pythons named options we expect the parameters in the ordering induced by keywords, but allow the user to pass named options in the form of --key=value. Optionally the user can pass an additional vector with help strings.

Parameters:
argc arg count
argv arg values
[out] pt The parameter tree to store the config structure.
keywords vector with keywords names
required number of required options (the first n keywords are required, default is all are required)
allow_more allow more options than these listed in keywords (default = true)
overwrite allow to overwrite existing options (default = true)
help vector containing help strings
void Dune::ParameterTreeParser::readOptions ( int  argc,
char *  argv[],
ParameterTree pt 
) [static]

parse command line options and build hierarchical ParameterTree structure

The list of command line options is searched for pairs of the type -key value (note the hyphen in front of the key). For each such pair of options a key-value pair with the corresponding names is then created in the ParameterTree.

Parameters:
argc arg count
argv arg values
[out] pt The parameter tree to store the config structure.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 25 Mar 2018 for dune-common by  doxygen 1.6.1