Async 1.8.0
|
A class for reading INI-formatted configuration files. More...
#include <AsyncConfig.h>
Public Member Functions | |
Config (void) | |
Default constuctor. | |
~Config (void) | |
Destructor. | |
bool | open (const std::string &name) |
Open the given config file. | |
const std::string & | getValue (const std::string §ion, const std::string &tag) const |
Return the string value of the given configuration variable. | |
bool | getValue (const std::string §ion, const std::string &tag, std::string &value, bool missing_ok=false) const |
Get the string value of the given configuration variable. | |
template<typename Rsp > | |
bool | getValue (const std::string §ion, const std::string &tag, Rsp &rsp, bool missing_ok=false) const |
Get the value of the given configuration variable. | |
template<template< typename, typename > class Container, typename Value > | |
bool | getValue (const std::string §ion, const std::string &tag, Container< Value, std::allocator< Value > > &c, bool missing_ok=false) const |
Get the value of the given config variable into container. | |
template<template< typename, typename, typename > class Container, typename Key > | |
bool | getValue (const std::string §ion, const std::string &tag, Container< Key, std::less< Key >, std::allocator< Key > > &c, bool missing_ok=false) const |
Get the value of the given config variable into keyed container. | |
template<template< typename, typename, typename, typename > class Container, class Key , class T , class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T>>> | |
bool | getValue (const std::string §ion, const std::string &tag, Container< Key, T, Compare, Allocator > &c, char sep=':', bool missing_ok=false) const |
Get value of given config variable into associative container. | |
template<typename Rsp > | |
bool | getValue (const std::string §ion, const std::string &tag, const Rsp &min, const Rsp &max, Rsp &rsp, bool missing_ok=false) const |
Get a range checked variable value. | |
template<typename F = std::function<void(const char*)>> | |
void | subscribeValue (const std::string §ion, const std::string &tag, const char *def, F func) |
Subscribe to the given configuration variable (char*) | |
template<typename Rsp , typename F = std::function<void(const Rsp&)>> | |
void | subscribeValue (const std::string §ion, const std::string &tag, const Rsp &def, F func) |
Subscribe to the given configuration variable. | |
template<template< typename, typename > class Container, typename Rsp , typename F = std::function<void(const Rsp&)>> | |
void | subscribeValue (const std::string §ion, const std::string &tag, const Container< Rsp, std::allocator< Rsp > > &def, F func) |
Subscribe to the given configuration variable (sequence) | |
std::list< std::string > | listSections (void) |
Return the name of all configuration sections. | |
std::list< std::string > | listSection (const std::string §ion) |
Return the name of all the tags in the given section. | |
void | setValue (const std::string §ion, const std::string &tag, const std::string &value) |
Set the value of a configuration variable. | |
template<typename Rsp > | |
void | setValue (const std::string §ion, const std::string &tag, const Rsp &value) |
Set the value of a configuration variable (generic type) | |
template<template< typename, typename > class Container, typename Rsp > | |
void | setValue (const std::string §ion, const std::string &tag, const Container< Rsp, std::allocator< Rsp > > &c) |
Set the value of a configuration variable (sequence container) | |
Public Attributes | |
sigc::signal< void, const std::string &, const std::string & > | valueUpdated |
A signal that is emitted when a config value is updated. | |
A class for reading INI-formatted configuration files.
This class is used to read configuration files that is in the famous MS Windows INI file format. An example of a configuration file and how to use the class is shown below.
Definition at line 138 of file AsyncConfig.h.
|
inline |
Default constuctor.
Definition at line 144 of file AsyncConfig.h.
Async::Config::~Config | ( | void | ) |
Destructor.
const std::string & Async::Config::getValue | ( | const std::string & | section, |
const std::string & | tag ) const |
Return the string value of the given configuration variable.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
This function will return the string value corresponding to the given configuration variable. If the configuration variable is unset, an empty sting is returned.
Referenced by getValue(), getValue(), getValue(), getValue(), and getValue().
|
inline |
Get a range checked variable value.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get. |
min | Smallest valid value. |
max | Largest valid value. |
rsp | The value is returned in this argument. Successful completion overwites prevoius contents. |
missing_ok | If set to true, return true if the configuration variable is missing |
This function is used to get the value of the given configuration variable, checking if it is within the given range (min <= value <= max). Requires operators >>, < and > to be defined in the value object. Normally a missing configuration variable is seen as an error and the function returns false. If the missing_ok parameter is set to true, this function returns true for a missing variable but till returns false if an illegal value is specified.
Definition at line 440 of file AsyncConfig.h.
References getValue().
|
inline |
Get the value of the given config variable into keyed container.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
c | The value is returned in this argument. Successful completion overwrites previous contents |
missing_ok | If set to true, return true if the configuration variable is missing |
This function is used to get the value of a configuraiton variable. The config variable is read into a keyed container (e.g. set, multiset etc). It's a template function meaning that it can take any key type that supports the operator>> function. Normally a missing configuration variable is seen as an error and the function returns false. If the missing_ok parameter is set to true, this function returns true for a missing variable but still returns false if an illegal value is specified.
Definition at line 314 of file AsyncConfig.h.
References getValue().
|
inline |
Get value of given config variable into associative container.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
c | The value is returned in this argument. Successful completion overwrites previous contents |
sep | The character used to separate key and value |
missing_ok | If set to true, return true if the configuration variable is missing |
This function is used to get the value of a configuraiton variable. The config variable is read into an associative container (e.g. std::map or std::multimap). It's a template function meaning that it can take any key and value type that supports the operator>> function. Normally a missing configuration variable is seen as an error and the function returns false. If the missing_ok parameter is set to true, this function returns true for a missing variable but still returns false if an illegal value is specified.
Definition at line 371 of file AsyncConfig.h.
References getValue().
|
inline |
Get the value of the given config variable into container.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
c | The value is returned in this argument. Successful completion overwrites previous contents |
missing_ok | If set to true, return true if the configuration variable is missing |
This function is used to get the value of a configuraiton variable. The config variable is read into a container (e.g. vector, list etc). It's a template function meaning that it can take any value type that supports the operator>> function. Normally a missing configuration variable is seen as an error and the function returns false. If the missing_ok parameter is set to true, this function returns true for a missing variable but still returns false if an illegal value is specified.
Definition at line 258 of file AsyncConfig.h.
References getValue().
|
inline |
Get the value of the given configuration variable.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
rsp | The value is returned in this argument. Successful completion overwrites previous contents |
missing_ok | If set to true, return true if the configuration variable is missing |
This function is used to get the value of a configuraiton variable. It's a template function meaning that it can take any value type that supports the operator>> function. Note that when the value is of type string, the overloaded getValue is used rather than this function. Normally a missing configuration variable is seen as an error and the function returns false. If the missing_ok parameter is set to true, this function returns true for a missing variable but still returns false if an illegal value is specified.
Definition at line 213 of file AsyncConfig.h.
References getValue().
bool Async::Config::getValue | ( | const std::string & | section, |
const std::string & | tag, | ||
std::string & | value, | ||
bool | missing_ok = false ) const |
Get the string value of the given configuration variable.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
value | The value is returned in this argument. Any previous contents is wiped |
This function is used to get the value for a configuration variable of type "string".
std::list< std::string > Async::Config::listSection | ( | const std::string & | section | ) |
Return the name of all the tags in the given section.
section | The name of the section where the configuration variables are located |
std::list< std::string > Async::Config::listSections | ( | void | ) |
Return the name of all configuration sections.
bool Async::Config::open | ( | const std::string & | name | ) |
Open the given config file.
name | The name of the configuration file to open |
This function will read the given configuration file into memory. If this function return false and errno != 0, the errno variable may give a hint what the problem was.
|
inline |
Set the value of a configuration variable (sequence container)
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to set. |
c | The sequence to set |
This function is used to set the value of a configuration variable that holds a sequence container (e.g. std::vector, std::list etc). The type of the elements of the container may be any type that support streaming to string. If the given configuration section or variable does not exist, it is created. Note that this function will not write anything back to the associated configuration file. It will only set the value in memory.
The valueUpdated signal will be emitted so that subscribers can get notified when the value of a configuration variable is changed.
Definition at line 651 of file AsyncConfig.h.
References setValue().
|
inline |
Set the value of a configuration variable (generic type)
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to set. |
value | The value to set |
This function is used to set the value of a configuration variable. The type of the value may be any type that support streaming to string. If the given configuration section or variable does not exist, it is created. Note that this function will not write anything back to the associated configuration file. It will only set the value in memory.
The valueUpdated signal will be emitted so that subscribers can get notified when the value of a configuration variable is changed.
Definition at line 622 of file AsyncConfig.h.
References setValue().
void Async::Config::setValue | ( | const std::string & | section, |
const std::string & | tag, | ||
const std::string & | value ) |
Set the value of a configuration variable.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to set. |
value | The value to set |
This function is used to set the value of a configuration variable. If the given configuration section or variable does not exist, it is created. Note that this function will not write anything back to the associated configuration file. It will only set the value in memory.
The valueUpdated signal will be emitted so that subscribers can get notified when the value of a configuration variable is changed.
Referenced by setValue(), and setValue().
|
inline |
Subscribe to the given configuration variable (char*)
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
def | Default value if the config var does not exist |
func | The function to call when the config var changes |
This function is used to subscribe to the changes of the specified configuration variable. The given function will be called when the value changes. If the configuration variable is not set, it will be set to the given default value.
This version of the function is called when the default value is a C string (char*).
Definition at line 481 of file AsyncConfig.h.
References subscribeValue().
Referenced by subscribeValue().
|
inline |
Subscribe to the given configuration variable (sequence)
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
def | Default value if the config var does not exist |
func | The function to call when the config var changes |
This function is used to subscribe to the changes of the specified configuration variable. The given function will be called when the value changes. If the configuration variable is not set, it will be set to the given default value.
This version of the function is called when the default value is a sequence container (e.g. std::vector, std::list etc).
Definition at line 542 of file AsyncConfig.h.
|
inline |
Subscribe to the given configuration variable.
section | The name of the section where the configuration variable is located |
tag | The name of the configuration variable to get |
def | Default value if the config var does not exist |
func | The function to call when the config var changes |
This function is used to subscribe to the changes of the specified configuration variable. The given function will be called when the value changes. If the configuration variable is not set, it will be set to the given default value.
This version of the function is called when the default value is of a non-container type (e.g. std::string, int, bool etc).
Definition at line 508 of file AsyncConfig.h.
sigc::signal<void, const std::string&, const std::string&> Async::Config::valueUpdated |
A signal that is emitted when a config value is updated.
section | The config section of the update |
tag | The tag (variable name) of the update |
This signal is emitted whenever a configuration variable is changed by calling the setValue function. It will only be emitted if the value actually changes.
Definition at line 677 of file AsyncConfig.h.