Ginkgo  Generated from pipelines/1554403166 branch based on develop. Ginkgo version 1.9.0
A numerical linear algebra library targeting many-core architectures
Public Types | Public Member Functions | List of all members
gko::config::pnode Class Referencefinal

pnode describes a tree of properties. More...

#include <ginkgo/core/config/property_tree.hpp>

Public Types

enum  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. More...
 
template<typename T , std::enable_if_t< std::is_integral< T >::value > * = nullptr>
 pnode (T integer)
 Constructor for integer with all integer type. More...
 
 pnode (const std::string &str)
 Constructor for string. More...
 
 pnode (const char *str)
 Constructor for char* (otherwise, it will use bool) More...
 
 pnode (double real)
 Constructor for double (and also float) More...
 
 pnode (const array_type &array)
 Constructor for array. More...
 
 pnode (const map_type &map)
 Constructor for map. More...
 
 operator bool () const noexcept
 bool conversion. More...
 
tag_t get_tag () const
 Get the current node tag. More...
 
const array_type & get_array () const
 Access the array stored in this property node. More...
 
const map_type & get_map () const
 Access the map stored in this property node. More...
 
bool get_boolean () const
 Access the boolean value stored in this property node. More...
 
std::int64_t get_integer () const
 
double get_real () const
 Access the real floating point value stored in this property node. More...
 
const std::string & get_string () const
 Access the string stored in this property node. More...
 
const pnodeget (const std::string &key) const
 This function is to access the data under the map. More...
 
const pnodeget (int index) const
 This function is to access the data under the array. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ pnode() [1/7]

gko::config::pnode::pnode ( bool  boolean)
explicit

Constructor for bool.

Parameters
booleanthe bool type value

◆ pnode() [2/7]

template<typename T , std::enable_if_t< std::is_integral< T >::value > * >
gko::config::pnode::pnode ( integer)
explicit

Constructor for integer with all integer type.

Template Parameters
Tinput type
Parameters
integerthe integer type value

◆ pnode() [3/7]

gko::config::pnode::pnode ( const std::string &  str)
explicit

Constructor for string.

Parameters
strstring type value

◆ pnode() [4/7]

gko::config::pnode::pnode ( const char *  str)
explicit

Constructor for char* (otherwise, it will use bool)

Parameters
strthe string like "..."

◆ pnode() [5/7]

gko::config::pnode::pnode ( double  real)
explicit

Constructor for double (and also float)

Parameters
realthe floating point type value

◆ pnode() [6/7]

gko::config::pnode::pnode ( const array_type &  array)
explicit

Constructor for array.

Parameters
arrayan pnode array

◆ pnode() [7/7]

gko::config::pnode::pnode ( const map_type &  map)
explicit

Constructor for map.

Parameters
mapa (string, pnode)-map

Member Function Documentation

◆ get() [1/2]

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.

Parameters
keythe key for the node of the map
Returns
node. If the map does not have the key, return an empty node.

◆ get() [2/2]

const pnode& gko::config::pnode::get ( int  index) const

This function is to access the data under the array.

It will throw error when it does not hold an array or access out-of-bound index.

Parameters
indexthe node index in array
Returns
node.

◆ get_array()

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.

Returns
the array

◆ get_boolean()

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.

Returns
the boolean value

◆ get_integer()

std::int64_t gko::config::pnode::get_integer ( ) const
  • Access the integer value stored in this property node. Throws gko::InvalidStateError if the property node does not store an integer value.
Returns
the integer value

◆ get_map()

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.

Returns
the map

◆ get_real()

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

Returns
the real floating point value

◆ get_string()

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.

Returns
the string

◆ get_tag()

tag_t gko::config::pnode::get_tag ( ) const

Get the current node tag.

Returns
the tag

◆ operator bool()

gko::config::pnode::operator bool ( ) const
explicitnoexcept

bool conversion.

It's true if and only if it is not empty.


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