pnode describes a tree of properties. More...
#include <ginkgo/core/config/property_tree.hpp>
Public Types | |
enum class | tag_t { empty , array , boolean , real , integer , string , map } |
tag_t is the indicator for the current node storage. | |
using | key_type = std::string |
using | map_type = std::map<key_type, pnode> |
using | array_type = std::vector<pnode> |
Public Member Functions | |
pnode () | |
Default constructor: create an empty node. | |
pnode (bool boolean) | |
Constructor for bool. | |
template<typename T, std::enable_if_t< std::is_integral< T >::value > * = nullptr> | |
pnode (T integer) | |
Constructor for integer with all integer type. | |
pnode (const std::string &str) | |
Constructor for string. | |
pnode (const char *str) | |
Constructor for char* (otherwise, it will use bool) | |
pnode (double real) | |
Constructor for double (and also float) | |
pnode (const array_type &array) | |
Constructor for array. | |
pnode (const map_type &map) | |
Constructor for map. | |
operator bool () const noexcept | |
bool conversion. | |
tag_t | get_tag () const |
Get the current node tag. | |
const array_type & | get_array () const |
Access the array stored in this property node. | |
const map_type & | get_map () const |
Access the map stored in this property node. | |
bool | get_boolean () const |
Access the boolean value stored in this property node. | |
std::int64_t | get_integer () const |
double | get_real () const |
Access the real floating point value stored in this property node. | |
const std::string & | get_string () const |
Access the string stored in this property node. | |
const pnode & | get (const std::string &key) const |
This function is to access the data under the map. | |
const pnode & | get (int index) const |
This function is to access the data under the array. | |
pnode describes a tree of properties.
A pnode can either be empty, hold a value (a string, integer, real, or bool), contain an array of pnode., or contain a mapping between strings and pnodes.
|
explicit |
Constructor for bool.
boolean | the bool type value |
|
explicit |
Constructor for integer with all integer type.
T | input type |
integer | the integer type value |
|
explicit |
Constructor for string.
str | string type value |
|
explicit |
Constructor for char* (otherwise, it will use bool)
str | the string like "..." |
|
explicit |
Constructor for double (and also float)
real | the floating point type value |
|
explicit |
Constructor for array.
array | an pnode array |
|
explicit |
Constructor for map.
map | a (string, pnode)-map |
const pnode & gko::config::pnode::get | ( | const std::string & | key | ) | const |
This function is to access the data under the map.
It will throw error when it does not hold a map. When access non-existent key in the map, it will return an empty node.
key | the key for the node of the map |
const pnode & gko::config::pnode::get | ( | int | index | ) | const |
const array_type & gko::config::pnode::get_array | ( | ) | const |
Access the array stored in this property node.
Throws gko::InvalidStateError
if the property node does not store an array.
References get_array().
Referenced by get_array().
bool gko::config::pnode::get_boolean | ( | ) | const |
Access the boolean value stored in this property node.
Throws gko::InvalidStateError
if the property node does not store a boolean value.
References get_boolean().
Referenced by get_boolean().
std::int64_t gko::config::pnode::get_integer | ( | ) | const |
gko::InvalidStateError
if the property node does not store an integer value.References get_integer().
Referenced by get_integer().
const map_type & gko::config::pnode::get_map | ( | ) | const |
Access the map stored in this property node.
Throws gko::InvalidStateError
if the property node does not store a map.
References get_map().
Referenced by get_map().
double gko::config::pnode::get_real | ( | ) | const |
Access the real floating point value stored in this property node.
Throws gko::InvalidStateError
if the property node does not store a real value
References get_real().
Referenced by get_real().
const std::string & gko::config::pnode::get_string | ( | ) | const |
Access the string stored in this property node.
Throws gko::InvalidStateError
if the property node does not store a string.
References get_string().
Referenced by get_string().
tag_t gko::config::pnode::get_tag | ( | ) | const |
|
explicitnoexcept |
bool conversion.
It's true if and only if it is not empty.