dune-common  2.2.0
Classes | Public Types | Public Member Functions | Static Protected Member Functions | Protected Attributes
Dune::ParameterTree Class Reference

Hierarchical structure of string parameters

. More...

#include <dune/common/parametertree.hh>

List of all members.

Classes

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

Public Types

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

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
ParameterTreesub (const std::string &sub)
 get substructure by name
const ParameterTreesub (const std::string &sub) 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
int get (const std::string &key, int defaultValue) const
 get value as int
double get (const std::string &key, double defaultValue) const
 get value as double
template<typename T >
get (const std::string &key, const T &defaultValue) const
 get value converted to a certain type
template<class T >
get (const std::string &key) const
 Get value.
const KeyVectorgetValueKeys () const
 get value keys
const KeyVectorgetSubKeys () 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

KeyVector valueKeys
KeyVector subKeys
std::map< std::string,
std::string > 
values
std::map< std::string,
ParameterTree
subs

Detailed Description

Hierarchical structure of string parameters

.


Member Typedef Documentation

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

Constructor & Destructor Documentation

ParameterTree::ParameterTree ( )

Create new empty ParameterTree.


Member Function Documentation

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:
keykey name
defaultValuedefault if key does not exist
Returns:
value as string

References hasKey().

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:
keykey name
defaultValuedefault if key does not exist
Returns:
value as string

References hasKey().

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

get value as int

Returns value for given key interpreted as int.

Parameters:
keykey name
defaultValuedefault if key does not exist
Returns:
value as int
double ParameterTree::get ( const std::string &  key,
double  defaultValue 
) const

get value as double

Returns value for given key interpreted as double.

Parameters:
keykey name
defaultValuedefault if key does not exist
Returns:
value as double

References hasKey().

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:
Ttype of returned value.
Parameters:
keykey name
defaultValuedefault if key does not exist
Returns:
value converted to T

References hasKey().

template<class T >
T Dune::ParameterTree::get ( const std::string &  key) const
inline

Get value.

Template Parameters:
TType of the value
Parameters:
keyKey name
Exceptions:
RangeErrorif key does not exist
NotImplementedType is not supported
Returns:
value as T

References DUNE_THROW, hasKey(), and Dune::ParameterTree::Parser< T >::parse().

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

References subKeys.

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

References valueKeys.

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

test for key

Tests whether given key exists.

Parameters:
keykey name
Returns:
true if key exists in structure, otherwise false

References hasKey(), sub(), subs, and values.

Referenced by get(), hasKey(), operator[](), and Dune::ParameterTreeParser::readINITree().

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

test for substructure

Tests whether given substructure exists.

Parameters:
subsubstructure name
Returns:
true if substructure exists in structure, otherwise false

References hasSub(), sub(), and subs.

Referenced by hasSub(), and operator[]().

std::string ParameterTree::ltrim ( const std::string &  s)
staticprotected
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:
keykey name
Returns:
reference to corresponding value

References hasKey(), hasSub(), sub(), subKeys, subs, valueKeys, and values.

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:
keykey name
Returns:
reference to corresponding value
Exceptions:
Dune::RangeErrorif key is not found

References DUNE_THROW, hasKey(), hasSub(), sub(), and values.

template<class Iterator >
static void Dune::ParameterTree::parseRange ( const std::string &  str,
Iterator  it,
const Iterator &  end 
)
inlinestaticprotected
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:
streamStream to print to
prefixfor key and substructure names

References subs, and values.

std::string ParameterTree::rtrim ( const std::string &  s)
staticprotected
std::vector< std::string > ParameterTree::split ( const std::string &  s)
staticprotected
ParameterTree & ParameterTree::sub ( const std::string &  sub)

get substructure by name

Parameters:
subsubstructure name
Returns:
reference to substructure

References sub(), subKeys, and subs.

Referenced by hasKey(), hasSub(), operator[](), Dune::ParameterTree::Parser< std::vector< T, A > >::parse(), and sub().

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

get const substructure by name

Parameters:
subsubstructure name
Returns:
reference to substructure

References DUNE_THROW, sub(), and subs.


Member Data Documentation

KeyVector Dune::ParameterTree::subKeys
protected

Referenced by getSubKeys(), operator[](), and sub().

std::map<std::string, ParameterTree> Dune::ParameterTree::subs
protected

Referenced by hasKey(), hasSub(), operator[](), report(), and sub().

KeyVector Dune::ParameterTree::valueKeys
protected

Referenced by getValueKeys(), and operator[]().

std::map<std::string, std::string> Dune::ParameterTree::values
protected

Referenced by hasKey(), operator[](), and report().


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