Dune Core Modules (2.3.1)

Dune::ParameterTreeParser Class Reference

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

#include <dune/common/parametertreeparser.hh>

Static Public Member Functions

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 More...
 
static void readINITree (std::istream &in, ParameterTree &pt, const std::string srcname="stream", bool overwrite=true)
 parse C++ stream More...
 
static void readINITree (std::string file, ParameterTree &pt, bool overwrite=true)
 parse file More...
 
static void readOptions (int argc, char *argv[], ParameterTree &pt)
 parse command line options and build hierarchical ParameterTree structure More...
 

Detailed Description

Parsers to set up a ParameterTree from various input sources.

Member Function Documentation

◆ readINITree() [1/3]

void Dune::ParameterTreeParser::readINITree ( std::istream &  in,
ParameterTree pt,
bool  overwrite 
)
static

parse C++ stream

Parses C++ stream and build hierarchical config structure.

Parameters
inThe stream to parse
ptThe parameter tree to store the config structure.
overwriteWhether 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 to give a custom name for the stream.

◆ readINITree() [2/3]

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
inThe stream to parse
ptThe parameter tree to store the config structure.
srcnameName of the configuration source for error messages, "stdin" or a filename.
overwriteWhether to overwrite already existing values. If false, values in the stream will be ignored if the key is already present.

◆ readINITree() [3/3]

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
filefilename
ptThe parameter tree to store the config structure.
overwriteWhether to overwrite already existing values. If false, values in the stream will be ignored if the key is already present.

References DUNE_THROW.

◆ readOptions()

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
argcarg count
argvarg values
ptThe parameter tree to store the config structure.

The documentation for this class was generated from the following files:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 2, 22:35, 2024)