A class for reading INI-formatted configuration files. More...
#include <AsyncConfig.h>
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.
[SECTION1] VALUE1=The value VALUE2="Hello, " "multi line " "value!" [SECTION2] VALUE1="Whatever you want" MY_INT=42 MY_FLOAT=3.14159
#include <iostream> #include <string> #include <cstdlib> #include <AsyncConfig.h> using namespace std; using namespace Async; int main(int argc, char **argv) { Config cfg; if (!cfg.open("test.cfg")) { cerr << "*** Error: Could not open config file test.cfg\n"; exit(1); } // Read the string value without checking if it exists or not. cout << "value=" << cfg.getValue("SECTION1", "VALUE1") << endl; // Read the string value, returning it in a variable. // The return value will indicate if the variable was found or not. string str_val; if (cfg.getValue("SECTION1", "VALUE2", str_val)) { cout << "str_val=" << str_val << endl; } else { cerr << "*** ERROR: Config variable SECTION1/VALUE2 not found.\n"; } // Read an integer value. int int_val; if (cfg.getValue("SECTION2", "MY_INT", int_val)) { cout << "int_val=" << int_val << endl; } else { cerr << "*** ERROR: Config variable SECTION2/MY_INT malformed or " "not found.\n"; } // Read a char value. Missing value is OK. char char_val = 'Q'; if (cfg.getValue("SECTION1", "NO_VALUE", char_val, true)) { cout << "char_val=" << char_val << endl; } else { cerr << "*** ERROR: Config variable SECTION1/NO_VALUE malformed.\n"; } // Read a float with min and max limits. float float_val; if (cfg.getValue("SECTION2", "MY_FLOAT", 3.0f, 4.0f, float_val)) { cout << "float_val=" << float_val << endl; } else { cerr << "*** ERROR: Config variable SECTION2/MY_FLOAT malformed, " "not found or out of range.\n"; } }
Definition at line 133 of file AsyncConfig.h.
Async::Config::Config | ( | void | ) | [inline] |
Default constuctor.
Definition at line 139 of file AsyncConfig.h.
Async::Config::~Config | ( | void | ) |
Destructor.
bool Async::Config::getValue | ( | const std::string & | section, | |
const std::string & | tag, | |||
const Rsp & | min, | |||
const Rsp & | max, | |||
Rsp & | rsp, | |||
bool | missing_ok = false | |||
) | const [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 245 of file AsyncConfig.h.
References getValue().
bool Async::Config::getValue | ( | const std::string & | section, | |
const std::string & | tag, | |||
Rsp & | rsp, | |||
bool | missing_ok = false | |||
) | const [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 till returns false if an illegal value is specified.
Definition at line 204 of file AsyncConfig.h.
References getValue().
bool Async::Config::getValue | ( | const std::string & | section, | |
const std::string & | tag, | |||
std::string & | value | |||
) | 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".
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().
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 |
bool Async::Config::open | ( | const std::string & | name | ) |
Open the given config file.
name | The name of the configuration file to open |