libcaf  0.16.3
Public Types | Public Member Functions | Static Public Member Functions | Related Functions | List of all members
caf::config_value Class Reference

A type for config parameters with similar interface to a variant. More...

#include <config_value.hpp>

Public Types

using integer = int64_t
 
using boolean = bool
 
using real = double
 
using atom = atom_value
 
using timespan = caf::timespan
 
using string = std::string
 
using list = std::vector< config_value >
 
using dictionary = caf::dictionary< config_value >
 
using types = detail::type_list< integer, boolean, real, atom, timespan, uri, string, list, dictionary >
 
using variant_type = detail::tl_apply_t< types, variant >
 

Public Member Functions

 config_value (config_value &&other)=default
 
 config_value (const config_value &other)=default
 
template<class T , class E = detail::enable_if_t< !std::is_same<detail::decay_t<T>, config_value>::value>>
 config_value (T &&x)
 
config_valueoperator= (config_value &&other)=default
 
config_valueoperator= (const config_value &other)=default
 
template<class T , class E = detail::enable_if_t< !std::is_same<detail::decay_t<T>, config_value>::value>>
config_valueoperator= (T &&x)
 
void convert_to_list ()
 Converts the value to a list with one element. More...
 
void append (config_value x)
 Appends x to a list. More...
 
const char * type_name () const noexcept
 Returns a human-readable type name of the current value.
 
variant_type & get_data ()
 Returns the underlying variant.
 
const variant_type & get_data () const
 Returns the underlying variant.
 
variant_type * get_data_ptr ()
 Returns a pointer to the underlying variant.
 
const variant_type * get_data_ptr () const
 Returns a pointer to the underlying variant.
 

Static Public Member Functions

static expected< config_valueparse (string_view::iterator first, string_view::iterator last)
 Tries to parse a value from str.
 
static expected< config_valueparse (string_view str)
 Tries to parse a value from str.
 

Related Functions

(Note that these are not member functions.)

using config_value_map = dictionary< config_value::dictionary >
 Organizes config values into categories.
 
template<class T >
optional< T > get_if (const config_value::dictionary *xs, string_view name)
 Tries to retrieve the value associated to name from xs.
 
template<class T >
get (const config_value::dictionary &xs, string_view name)
 Retrieves the value associated to name from xs.
 
template<class T , class E = detail::enable_if_t<!std::is_pointer<T>::value>>
get_or (const config_value::dictionary &xs, string_view name, const T &default_value)
 Retrieves the value associated to name from xs or returns default_value.
 
std::string get_or (const config_value::dictionary &xs, string_view name, const char *default_value)
 Retrieves the value associated to name from xs or returns default_value.
 
template<class T >
optional< T > get_if (const config_value_map *xs, string_view name)
 Tries to retrieve the value associated to name from xs.
 
template<class T >
get (const config_value_map &xs, string_view name)
 Retrieves the value associated to name from xs.
 
template<class T , class E = detail::enable_if_t<!std::is_pointer<T>::value>>
get_or (const config_value_map &xs, string_view name, const T &default_value)
 Retrieves the value associated to name from xs or returns default_value.
 
std::string get_or (const config_value_map &xs, string_view name, const char *default_value)
 Retrieves the value associated to name from xs or returns default_value.
 
template<class T >
optional< T > get_if (const actor_system_config *cfg, string_view name)
 Tries to retrieve the value associated to name from cfg.
 
template<class T >
get (const actor_system_config &cfg, string_view name)
 Retrieves the value associated to name from cfg.
 
template<class T , class E = detail::enable_if_t<!std::is_pointer<T>::value>>
get_or (const actor_system_config &cfg, string_view name, const T &default_value)
 Retrieves the value associated to name from cfg or returns default_value.
 
bool operator< (const config_value &x, const config_value &y)
 
bool operator== (const config_value &x, const config_value &y)
 
bool operator>= (const config_value &x, const config_value &y)
 
bool operator!= (const config_value &x, const config_value &y)
 
std::string to_string (const config_value &x)
 
template<class Inspector >
Inspector::result_type inspect (Inspector &f, config_value &x)
 

Detailed Description

A type for config parameters with similar interface to a variant.

This type is not implemented as a simple variant alias because variants cannot contain lists of themselves.

Member Function Documentation

◆ append()

void caf::config_value::append ( config_value  x)

Appends x to a list.

Converts this config value to a list first by calling convert_to_list if needed.

◆ convert_to_list()

void caf::config_value::convert_to_list ( )

Converts the value to a list with one element.

Does nothing if the value already is a list.

Friends And Related Function Documentation

◆ inspect()

template<class Inspector >
Inspector::result_type inspect ( Inspector &  f,
config_value x 
)
related

◆ operator!=()

bool operator!= ( const config_value x,
const config_value y 
)
related

◆ operator<()

bool operator< ( const config_value x,
const config_value y 
)
related

◆ operator==()

bool operator== ( const config_value x,
const config_value y 
)
related

◆ operator>=()

bool operator>= ( const config_value x,
const config_value y 
)
related

◆ to_string()

std::string to_string ( const config_value x)
related

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