Loading...
Searching...
No Matches
Dune::ParameterTree Class Reference
Common

Hierarchical structure of string parameters. More...

`#include <dune/common/parametertree.hh>`

## Classes

struct | Parser< std::basic_string< char, traits, Allocator > >
struct | Parser< bool >
struct | Parser< FieldVector< T, n > >
struct | Parser< std::array< T, n > >
struct | Parser< std::bitset< n > >
struct | Parser< std::vector< T, A > >

## Public Types

typedef std::vector< std::string > | KeyVector
| storage for key lists

## Public Member Functions

| ParameterTree ()
| Create new empty ParameterTree.
bool | hasKey (const std::string &key) const
| test for key
bool | hasSub (const std::string &sub) const
| test for substructure
std::string & | operator[] (const std::string &key)
| get value reference for key
const std::string & | operator[] (const std::string &key) const
| get value reference for key
void | report (std::ostream &stream=std::cout, const std::string &prefix="") const
| print distinct substructure to stream
ParameterTree & | sub (const std::string &sub)
| get substructure by name
const ParameterTree & | sub (const std::string &sub, bool fail_if_missing=false) const
| get const substructure by name
std::string | get (const std::string &key, const std::string &defaultValue) const
| get value as string
std::string | get (const std::string &key, const char *defaultValue) const
| get value as string
template<typename T>
T | get (const std::string &key, const T &defaultValue) const
| get value converted to a certain type
template<class T>
T | get (const std::string &key) const
| Get value.
const KeyVector & | getValueKeys () const
| get value keys
const KeyVector & | getSubKeys () const
| get substructure keys

## Static Protected Member Functions

static std::string | ltrim (const std::string &s)
static std::string | rtrim (const std::string &s)
static std::vector< std::string > | split (const std::string &s)
template<class Iterator>
static void | parseRange (const std::string &str, Iterator it, const Iterator &end)

## Protected Attributes

std::string | prefix_
KeyVector | valueKeys_
KeyVector | subKeys_
std::map< std::string, std::string > | values_
std::map< std::string, ParameterTree > | subs_

## Static Protected Attributes

static const ParameterTree | empty_ = ParameterTree{ParameterTree::EmptyTag()}

## Detailed Description

Hierarchical structure of string parameters.

## Member Typedef Documentation

## KeyVector

typedef std::vector<std::string> Dune::ParameterTree::KeyVector

storage for key lists

## Constructor & Destructor Documentation

## ParameterTree()

ParameterTree::ParameterTree | ( |  | ) |

Create new empty ParameterTree.

## Member Function Documentation

## get() [1/4]

template<class T>

T Dune::ParameterTree::get | ( | const std::string & | key | ) | const

inline

Get value.

Template Parameters

  T | Type of the value

Parameters

  key | Key name

Exceptions

  RangeError | if key does not exist
  NotImplemented | Type is not supported

Returns
  value as T

## get() [2/4]

std::string ParameterTree::get | ( | const std::string & | key,
|  | const char * | defaultValue ) const

get value as string

Returns pure string value for given key.

Todo
  This is a hack so get("my_key", "xyz") compiles (without this method "xyz" resolves to bool instead of std::string)

Parameters

  key | key name
  defaultValue | default if key does not exist

Returns
  value as string

## get() [3/4]

std::string ParameterTree::get | ( | const std::string & | key,
|  | const std::string & | defaultValue ) const

get value as string

Returns pure string value for given key.

Parameters

  key | key name
  defaultValue | default if key does not exist

Returns
  value as string

## get() [4/4]

template<typename T>

T Dune::ParameterTree::get | ( | const std::string & | key,
|  | const T & | defaultValue ) const

inline

get value converted to a certain type

Returns value as type T for given key.

Template Parameters

  T | type of returned value.

Parameters

  key | key name
  defaultValue | default if key does not exist

Returns
  value converted to T

## getSubKeys()

const ParameterTree::KeyVector & ParameterTree::getSubKeys | ( |  | ) | const

get substructure keys

Returns a vector of all keys associated to (key,substructure) entries in order of appearance

Returns
  reference to entry vector

## getValueKeys()

const ParameterTree::KeyVector & ParameterTree::getValueKeys | ( |  | ) | const

get value keys

Returns a vector of all keys associated to (key,values) entries in order of appearance

Returns
  reference to entry vector

## hasKey()

bool ParameterTree::hasKey | ( | const std::string & | key | ) | const

test for key

Tests whether given key exists.

Parameters

  key | key name

Returns
  true if key exists in structure, otherwise false

## hasSub()

bool ParameterTree::hasSub | ( | const std::string & | sub | ) | const

test for substructure

Tests whether given substructure exists.

Parameters

  sub | substructure name

Returns
  true if substructure exists in structure, otherwise false

## ltrim()

std::string ParameterTree::ltrim | ( | const std::string & | s | ) |

static protected

## operator[]() [1/2]

std::string & ParameterTree::operator[] | ( | const std::string & | key | ) |

get value reference for key

Returns reference to value for given key name. This creates the key, if not existent.

Parameters

  key | key name

Returns
  reference to corresponding value

## operator[]() [2/2]

const std::string & ParameterTree::operator[] | ( | const std::string & | key | ) | const

get value reference for key

Returns reference to value for given key name. This creates the key, if not existent.

Parameters

  key | key name

Returns
  reference to corresponding value

Exceptions

  Dune::RangeError | if key is not found

## parseRange()

template<class Iterator>

void Dune::ParameterTree::parseRange | ( | const std::string & | str,
|  | Iterator | it,
|  | const Iterator & | end )

inline static protected

## report()

void ParameterTree::report | ( | std::ostream & | stream = std::cout,
|  | const std::string & | prefix = "" ) const

print distinct substructure to stream

Prints all entries with given prefix.

Parameters

  stream | Stream to print to
  prefix | for key and substructure names

## rtrim()

std::string ParameterTree::rtrim | ( | const std::string & | s | ) |

static protected

## split()

std::vector< std::string > ParameterTree::split | ( | const std::string & | s | ) |

static protected

## sub() [1/2]

ParameterTree & ParameterTree::sub | ( | const std::string & | sub | ) |

get substructure by name

Parameters

  sub | substructure name

Returns
  reference to substructure

## sub() [2/2]

const ParameterTree & ParameterTree::sub | ( | const std::string & | sub,
|  | bool | fail_if_missing = false ) const

get const substructure by name

Parameters

  sub | substructure name
  fail_if_missing | if true, throw an error if substructure is missing

Returns
  reference to substructure

## Member Data Documentation

## empty_

const ParameterTree ParameterTree::empty_ = ParameterTree{ParameterTree::EmptyTag()}

static protected

## prefix_

std::string Dune::ParameterTree::prefix_

protected

## subKeys_

KeyVector Dune::ParameterTree::subKeys_

protected

## subs_

std::map<std::string, ParameterTree> Dune::ParameterTree::subs_

protected

## valueKeys_

KeyVector Dune::ParameterTree::valueKeys_

protected

## values_

std::map<std::string, std::string> Dune::ParameterTree::values_

protected

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

- parametertree.hh
- parametertree.cc