This class allows loading and storing values and vectors of different types from a configuration text, which can be implemented as a ".ini" file, a memory-stored string, etc...
This is a virtual class, use only as a pointer to an implementation of one of the derived classes.
Definition at line 46 of file CConfigFileBase.h.
#include <mrpt/utils/CConfigFileBase.h>
Public Member Functions | |||
virtual | ~CConfigFileBase () | ||
Virtual destructor... | |||
virtual void | getAllSections (vector_string §ions) const =0 | ||
Returns a list with all the section names. | |||
virtual void | getAllKeys (const std::string section, vector_string &keys) const =0 | ||
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 | |||
virtual void | writeString (const std::string §ion, const std::string &name, const std::string &str)=0 | ||
A virtual method to write a generic string. | |||
virtual std::string | readString (const std::string §ion, const std::string &name, const std::string &defaultStr, bool failIfNotFound=false) const =0 | ||
A virtual method to read a generic string. |
virtual mrpt::utils::CConfigFileBase::~CConfigFileBase | ( | ) | [inline, virtual] |
Virtual destructor...
Definition at line 65 of file CConfigFileBase.h.
virtual void mrpt::utils::CConfigFileBase::getAllKeys | ( | const std::string | section, |
vector_string & | keys | ||
) | const [pure virtual] |
Returs a list with all the keys into a section.
Implemented in mrpt::utils::CConfigFile, and mrpt::utils::CConfigFileMemory.
virtual void mrpt::utils::CConfigFileBase::getAllSections | ( | vector_string & | sections | ) | const [pure virtual] |
Returns a list with all the section names.
Implemented in mrpt::utils::CConfigFile, and mrpt::utils::CConfigFileMemory.
bool mrpt::utils::CConfigFileBase::read_bool | ( | const std::string & | section, |
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.
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 |
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] |
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 237 of file CConfigFileBase.h.
References mrpt::format(), MRPT_END, MRPT_START, and THROW_EXCEPTION.
float mrpt::utils::CConfigFileBase::read_float | ( | const std::string & | section, |
const std::string & | name, | ||
float | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
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 |
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] |
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 200 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 |
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 |
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 |
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] |
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 165 of file CConfigFileBase.h.
References mrpt::system::tokenize().
virtual std::string mrpt::utils::CConfigFileBase::readString | ( | const std::string & | section, |
const std::string & | name, | ||
const std::string & | defaultStr, | ||
bool | failIfNotFound = false |
||
) | const [protected, pure 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. |
Implemented in mrpt::utils::CConfigFile, and mrpt::utils::CConfigFileMemory.
bool mrpt::utils::CConfigFileBase::sectionExists | ( | const std::string & | section_name | ) | const |
Checks if a given section exists (name is case insensitive)
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
const std::vector< int > & | value | ||
) |
Save a configuration parameter of type "std::vector<int>".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
const std::string & | value | ||
) |
Save a configuration parameter of type "string".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
unsigned int | value | ||
) |
Save a configuration parameter of type "unsigned int".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
const std::vector< float > & | value | ||
) |
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< bool > & | value | ||
) |
Save a configuration parameter of type "std::vector<bool>".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
float | value | ||
) |
Save a configuration parameter of type "float".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
double | value | ||
) |
Save a configuration parameter of type "double".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
int | value | ||
) |
Save a configuration parameter of type "int".
void mrpt::utils::CConfigFileBase::write | ( | const std::string & | section, |
const std::string & | name, | ||
const std::vector< unsigned int > & | value | ||
) |
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< double > & | value | ||
) |
Save a configuration parameter of type "std::vector<double>".
virtual void mrpt::utils::CConfigFileBase::writeString | ( | const std::string & | section, |
const std::string & | name, | ||
const std::string & | str | ||
) | [protected, pure virtual] |
A virtual method to write a generic string.
Implemented in mrpt::utils::CConfigFile, and mrpt::utils::CConfigFileMemory.
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN:exported at Tue Jan 25 21:56:31 UTC 2011 |