Main MRPT website > C++ reference
MRPT logo
Public Member Functions | Protected Member Functions

mrpt::utils::CConfigFileBase Class Reference


Detailed Description

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>

Inheritance diagram for mrpt::utils::CConfigFileBase:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~CConfigFileBase ()
 Virtual destructor...
virtual void getAllSections (vector_string &sections) 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 &section_name) const
 Checks if a given section exists (name is case insensitive).
void write (const std::string &section, const std::string &name, double value)
 Save a configuration parameter of type "double".
void write (const std::string &section, const std::string &name, float value)
 Save a configuration parameter of type "float".
void write (const std::string &section, const std::string &name, int value)
 Save a configuration parameter of type "int".
void write (const std::string &section, const std::string &name, unsigned int value)
 Save a configuration parameter of type "unsigned int".
void write (const std::string &section, const std::string &name, const std::string &value)
 Save a configuration parameter of type "string".
void write (const std::string &section, const std::string &name, const std::vector< int > &value)
 Save a configuration parameter of type "std::vector<int>".
void 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 write (const std::string &section, const std::string &name, const std::vector< float > &value)
 Save a configuration parameter of type "std::vector<float>".
void write (const std::string &section, const std::string &name, const std::vector< double > &value)
 Save a configuration parameter of type "std::vector<double>".
void write (const std::string &section, const std::string &name, const std::vector< bool > &value)
 Save a configuration parameter of type "std::vector<bool>".
double read_double (const std::string &section, const std::string &name, double defaultValue, bool failIfNotFound=false) const
 Reads a configuration parameter of type "double"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

float read_float (const std::string &section, const std::string &name, float defaultValue, bool failIfNotFound=false) const
 Reads a configuration parameter of type "float"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

bool 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.
int read_int (const std::string &section, const std::string &name, int defaultValue, bool failIfNotFound=false) const
 Reads a configuration parameter of type "int"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

uint64_t 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"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

std::string 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"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

std::string 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)

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

template<class VECTOR_TYPE >
void read_vector (const std::string &section, 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 &section, 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

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

template<typename ENUMTYPE >
ENUMTYPE read_enum (const std::string &section, 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 &section, const std::string &name, const std::string &str)=0
 A virtual method to write a generic string.
virtual std::string readString (const std::string &section, const std::string &name, const std::string &defaultStr, bool failIfNotFound=false) const =0
 A virtual method to read a generic string.

Constructor & Destructor Documentation

virtual mrpt::utils::CConfigFileBase::~CConfigFileBase (  )  [inline, virtual]

Virtual destructor...

Definition at line 65 of file CConfigFileBase.h.


Member Function Documentation

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.

Exceptions:
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"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

Otherwise the "defaultValue" is returned.

template<typename ENUMTYPE >
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 );
Note:
For an enum type to work with this template it is required that it defines a specialization of mrpt::utils::TEnumType

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"

Exceptions:
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"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

Otherwise the "defaultValue" is returned.

template<class MATRIX_TYPE >
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

Exceptions:
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"

Exceptions:
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)

Exceptions:
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"

Exceptions:
std::exception If the key name is not found and "failIfNotFound" is true.

Otherwise the "defaultValue" is returned.

template<class VECTOR_TYPE >
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.

Exceptions:
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.

Exceptions:
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.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011