This class allows loading and storing values and vectors of different types from ".ini" files easily.
The contents of the file will be modified by "write" operations in memory, and will be saved back to the file at the destructor, and only if at least one write operation has been applied.
#include <mrpt/utils/CConfigFile.h>

Public Member Functions | |||
| CConfigFile (const std::string &fileName) | |||
| Constructor that opens a configuration file. | |||
| CConfigFile () | |||
| Constructor, does not open any file. | |||
| void | setFileName (const std::string &fil_path) | ||
| Associate this object with the given file, so future read/write operations will be applied to that file (it's synchronized at destruction). | |||
| void | writeNow () | ||
| Dumps the changes to the physical configuration file now, not waiting until destruction. | |||
| std::string | getAssociatedFile () const | ||
| Returns the file currently open by this object. | |||
| virtual | ~CConfigFile () | ||
| Destructor. | |||
| virtual void | getAllSections (vector_string §ions) const | ||
| Returns a list with all the section names. | |||
| virtual void | getAllKeys (const std::string section, vector_string &keys) const | ||
| Returs a list with all the keys into a section. | |||
| bool | sectionExists (const std::string §ion_name) const | ||
| Checks if a given section exists (name is case insensitive) | |||
| void | write (const std::string §ion, const std::string &name, double value) | ||
| Save a configuration parameter of type "double". | |||
| void | write (const std::string §ion, const std::string &name, float value) | ||
| Save a configuration parameter of type "float". | |||
| void | write (const std::string §ion, const std::string &name, int value) | ||
| Save a configuration parameter of type "int". | |||
| void | write (const std::string §ion, const std::string &name, unsigned int value) | ||
| Save a configuration parameter of type "unsigned int". | |||
| void | write (const std::string §ion, const std::string &name, const std::string &value) | ||
| Save a configuration parameter of type "string". | |||
| void | write (const std::string §ion, const std::string &name, const std::vector< int > &value) | ||
| Save a configuration parameter of type "std::vector<int>". | |||
| void | write (const std::string §ion, const std::string &name, const std::vector< unsigned int > &value) | ||
| Save a configuration parameter of type "std::vector<unsigned int>". | |||
| void | write (const std::string §ion, const std::string &name, const std::vector< float > &value) | ||
| Save a configuration parameter of type "std::vector<float>". | |||
| void | write (const std::string §ion, const std::string &name, const std::vector< double > &value) | ||
| Save a configuration parameter of type "std::vector<double>". | |||
| void | write (const std::string §ion, const std::string &name, const std::vector< bool > &value) | ||
| Save a configuration parameter of type "std::vector<bool>". | |||
| double | read_double (const std::string §ion, const std::string &name, double defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "double"
| |||
| float | read_float (const std::string §ion, const std::string &name, float defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "float"
| |||
| bool | read_bool (const std::string §ion, const std::string &name, bool defaultValue, bool failIfNotFound=false) const | ||
| Reads a configuration parameter of type "bool", codified as "1"/"0" or "true"/"false" or "yes"/"no" for true/false, repectively. | |||
| int | read_int (const std::string §ion, const std::string &name, int defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "int"
| |||
| uint64_t | read_uint64_t (const std::string §ion, const std::string &name, uint64_t defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "uint64_t": As in all other methods, the numeric value can be in decimal or hexadecimal with the prefix "0x"
| |||
| std::string | read_string (const std::string §ion, const std::string &name, const std::string &defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "string"
| |||
| std::string | read_string_first_word (const std::string §ion, const std::string &name, const std::string &defaultValue, bool failIfNotFound=false) const | ||
Reads a configuration parameter of type "string", and keeps only the first word (this can be used to eliminate possible comments at the end of the line)
| |||
| template<class VECTOR_TYPE > | |||
| void | read_vector (const std::string §ion, const std::string &name, const VECTOR_TYPE &defaultValue, VECTOR_TYPE &outValues, bool failIfNotFound=false) const | ||
| Reads a configuration parameter of type vector, stored in the file as a string: "[v1 v2 v3 ... ]", where spaces could also be commas. | |||
| template<class MATRIX_TYPE > | |||
| void | read_matrix (const std::string §ion, const std::string &name, MATRIX_TYPE &outMatrix, const MATRIX_TYPE &defaultMatrix=MATRIX_TYPE(), bool failIfNotFound=false) const | ||
Reads a configuration parameter as a matrix written in a matlab-like format - for example: "[2 3 4 ; 7 8 9]" This template method can be instantiated for matrices of the types: int, long, unsinged int, unsigned long, float, double, long double
| |||
| template<typename ENUMTYPE > | |||
| ENUMTYPE | read_enum (const std::string §ion, const std::string &name, const ENUMTYPE &defaultValue, bool failIfNotFound=false) const | ||
| Reads an "enum" value, where the value in the config file can be either a numerical value or the symbolic name, for example: In the code: | |||
Protected Member Functions | |||
| void | writeString (const std::string §ion, const std::string &name, const std::string &str) | ||
| A virtual method to write a generic string. | |||
| std::string | readString (const std::string §ion, const std::string &name, const std::string &defaultStr, bool failIfNotFound=false) const | ||
| A virtual method to read a generic string. | |||
Private Attributes | |||
| std::string | m_file | ||
| The name of the file. | |||
| void_ptr_noncopy | m_ini | ||
| The interface to the file: | |||
| bool | m_modified | ||
| If modified since load. | |||
| mrpt::utils::CConfigFile::CConfigFile | ( | const std::string & | fileName | ) |
Constructor that opens a configuration file.
| mrpt::utils::CConfigFile::CConfigFile | ( | ) |
Constructor, does not open any file.
You should call "setFileName" before reading or writting or otherwise nothing will be read and write operations will be eventually lost. However, it's perfectly right to use this object without an associated file, in which case it will behave as an "in-memory" file.
| virtual mrpt::utils::CConfigFile::~CConfigFile | ( | ) | [virtual] |
Destructor.
| virtual void mrpt::utils::CConfigFile::getAllKeys | ( | const std::string | section, |
| vector_string & | keys | ||
| ) | const [virtual] |
Returs a list with all the keys into a section.
Implements mrpt::utils::CConfigFileBase.
| virtual void mrpt::utils::CConfigFile::getAllSections | ( | vector_string & | sections | ) | const [virtual] |
Returns a list with all the section names.
Implements mrpt::utils::CConfigFileBase.
| std::string mrpt::utils::CConfigFile::getAssociatedFile | ( | ) | const [inline] |
Returns the file currently open by this object.
Definition at line 94 of file CConfigFile.h.
| bool mrpt::utils::CConfigFileBase::read_bool | ( | const std::string & | section, |
| const std::string & | name, | ||
| bool | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "bool", codified as "1"/"0" or "true"/"false" or "yes"/"no" for true/false, repectively.
| std::exception | If the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned. |
| double mrpt::utils::CConfigFileBase::read_double | ( | const std::string & | section, |
| const std::string & | name, | ||
| double | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "double"
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| ENUMTYPE mrpt::utils::CConfigFileBase::read_enum | ( | const std::string & | section, |
| const std::string & | name, | ||
| const ENUMTYPE & | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inline, inherited] |
Reads an "enum" value, where the value in the config file can be either a numerical value or the symbolic name, for example: In the code:
enum my_type_t { type_foo=0, type_bar };
In the config file:
[section]
type = type_bar // Use the symbolic name, or
type = 1 // use the numerical value (both lines will be equivalent)
Which can be loaded with:
cfgfile.read_enum<my_type_t>("section","type", type_foo );
Definition at line 238 of file CConfigFileBase.h.
References MRPT_START, THROW_EXCEPTION, mrpt::format(), and MRPT_END.
| float mrpt::utils::CConfigFileBase::read_float | ( | const std::string & | section, |
| const std::string & | name, | ||
| float | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "float"
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| int mrpt::utils::CConfigFileBase::read_int | ( | const std::string & | section, |
| const std::string & | name, | ||
| int | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "int"
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| void mrpt::utils::CConfigFileBase::read_matrix | ( | const std::string & | section, |
| const std::string & | name, | ||
| MATRIX_TYPE & | outMatrix, | ||
| const MATRIX_TYPE & | defaultMatrix = MATRIX_TYPE(), |
||
| bool | failIfNotFound = false |
||
| ) | const [inline, inherited] |
Reads a configuration parameter as a matrix written in a matlab-like format - for example: "[2 3 4 ; 7 8 9]" This template method can be instantiated for matrices of the types: int, long, unsinged int, unsigned long, float, double, long double
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
Definition at line 201 of file CConfigFileBase.h.
References THROW_EXCEPTION_CUSTOM_MSG1.
| std::string mrpt::utils::CConfigFileBase::read_string | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::string & | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "string"
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| std::string mrpt::utils::CConfigFileBase::read_string_first_word | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::string & | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "string", and keeps only the first word (this can be used to eliminate possible comments at the end of the line)
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| uint64_t mrpt::utils::CConfigFileBase::read_uint64_t | ( | const std::string & | section, |
| const std::string & | name, | ||
| uint64_t | defaultValue, | ||
| bool | failIfNotFound = false |
||
| ) | const [inherited] |
Reads a configuration parameter of type "uint64_t": As in all other methods, the numeric value can be in decimal or hexadecimal with the prefix "0x"
| std::exception | If the key name is not found and "failIfNotFound" is true. |
Otherwise the "defaultValue" is returned.
| void mrpt::utils::CConfigFileBase::read_vector | ( | const std::string & | section, |
| const std::string & | name, | ||
| const VECTOR_TYPE & | defaultValue, | ||
| VECTOR_TYPE & | outValues, | ||
| bool | failIfNotFound = false |
||
| ) | const [inline, inherited] |
Reads a configuration parameter of type vector, stored in the file as a string: "[v1 v2 v3 ... ]", where spaces could also be commas.
| std::exception | If the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned. |
Definition at line 166 of file CConfigFileBase.h.
References mrpt::system::tokenize().
| std::string mrpt::utils::CConfigFile::readString | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::string & | defaultStr, | ||
| bool | failIfNotFound = false |
||
| ) | const [protected, virtual] |
A virtual method to read a generic string.
| std::exception | If the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned. |
Implements mrpt::utils::CConfigFileBase.
| bool mrpt::utils::CConfigFileBase::sectionExists | ( | const std::string & | section_name | ) | const [inherited] |
Checks if a given section exists (name is case insensitive)
| void mrpt::utils::CConfigFile::setFileName | ( | const std::string & | fil_path | ) |
Associate this object with the given file, so future read/write operations will be applied to that file (it's synchronized at destruction).
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| double | value | ||
| ) | [inherited] |
Save a configuration parameter of type "double".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| float | value | ||
| ) | [inherited] |
Save a configuration parameter of type "float".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| int | value | ||
| ) | [inherited] |
Save a configuration parameter of type "int".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| unsigned int | value | ||
| ) | [inherited] |
Save a configuration parameter of type "unsigned int".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::string & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "string".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::vector< int > & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "std::vector<int>".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::vector< unsigned int > & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "std::vector<unsigned int>".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::vector< float > & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "std::vector<float>".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::vector< double > & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "std::vector<double>".
| void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::vector< bool > & | value | ||
| ) | [inherited] |
Save a configuration parameter of type "std::vector<bool>".
| void mrpt::utils::CConfigFile::writeNow | ( | ) |
Dumps the changes to the physical configuration file now, not waiting until destruction.
| void mrpt::utils::CConfigFile::writeString | ( | const std::string & | section, |
| const std::string & | name, | ||
| const std::string & | str | ||
| ) | [protected, virtual] |
A virtual method to write a generic string.
Implements mrpt::utils::CConfigFileBase.
std::string mrpt::utils::CConfigFile::m_file [private] |
The name of the file.
Definition at line 52 of file CConfigFile.h.
The interface to the file:
Definition at line 56 of file CConfigFile.h.
bool mrpt::utils::CConfigFile::m_modified [private] |
If modified since load.
Definition at line 60 of file CConfigFile.h.
| Page generated by Doxygen 1.7.5 for MRPT 0.9.5 SVN: at Thu Oct 13 21:25:36 UTC 2011 |