A wrapper for other CConfigFileBase-based objects that prefixes a given token to every key and/or section.
If, for example, your code expect:
Using this class with key entries prefix "s1_" will enable the same existing code to transparently parse this file content:
Definition at line 36 of file CConfigFilePrefixer.h.
#include <mrpt/utils/CConfigFilePrefixer.h>
Public Member Functions | |
CConfigFilePrefixer () | |
Unbound constructor: must bind this object to CConfigFileBase before usage with bind() and setPrefixes() | |
CConfigFilePrefixer (const CConfigFileBase &o, const std::string &prefix_sections, const std::string &prefix_keys) | |
Construct and bind to (wrap) a given object with given prefix texts. | |
void | bind (const CConfigFileBase &o) |
Make this object to wrap the given existing CConfigFileBase object. | |
void | setPrefixes (const std::string &prefix_sections, const std::string &prefix_keys) |
Change the prefix for sections and keys. | |
std::string | getSectionPrefix () const |
std::string | getKeyPrefix () const |
CConfigFileBase * | getBoundConfigFileBase () const |
Returns the currently-bounded config source, or NULL if none. | |
virtual | ~CConfigFilePrefixer () |
void | getAllSections (vector_string §ions) const MRPT_OVERRIDE |
Returns a list with all the section names. | |
void | getAllKeys (const std::string §ion, vector_string &keys) const MRPT_OVERRIDE |
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) | |
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: | |
Save a configuration parameter. Optionally pads with spaces up to the desired width in number of characters (-1: no fill), and add a final comment field at the end of the line (a "// " prefix is automatically inserted). | |
void | write (const std::string §ion, const std::string &name, double value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, float value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, int value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, uint32_t value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, uint64_t value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::string &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::vector< int > &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::vector< unsigned int > &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::vector< float > &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::vector< double > &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
void | write (const std::string §ion, const std::string &name, const std::vector< bool > &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
Protected Member Functions | |
void | writeString (const std::string §ion, const std::string &name, const std::string &str) MRPT_OVERRIDE |
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 MRPT_OVERRIDE |
A virtual method to read a generic string. | |
void | writeString (const std::string §ion, const std::string &name, const std::string &str, const int name_padding_width, const int value_padding_width, const std::string &comment) |
Write a generic string with optional padding and a comment field ("// ...") at the end of the line. | |
Private Attributes | |
CConfigFileBase * | m_bound_object |
The object we are wrapping. | |
std::string | m_prefix_sections |
std::string | m_prefix_keys |
mrpt::utils::CConfigFilePrefixer::CConfigFilePrefixer | ( | ) |
Unbound constructor: must bind this object to CConfigFileBase before usage with bind() and setPrefixes()
mrpt::utils::CConfigFilePrefixer::CConfigFilePrefixer | ( | const CConfigFileBase & | o, |
const std::string & | prefix_sections, | ||
const std::string & | prefix_keys | ||
) |
Construct and bind to (wrap) a given object with given prefix texts.
|
virtual |
void mrpt::utils::CConfigFilePrefixer::bind | ( | const CConfigFileBase & | o | ) |
Make this object to wrap the given existing CConfigFileBase object.
Can be changed at any moment after construction
|
virtual |
Returs a list with all the keys into a section.
Implements mrpt::utils::CConfigFileBase.
|
virtual |
Returns a list with all the section names.
Implements mrpt::utils::CConfigFileBase.
CConfigFileBase * mrpt::utils::CConfigFilePrefixer::getBoundConfigFileBase | ( | ) | const |
Returns the currently-bounded config source, or NULL if none.
std::string mrpt::utils::CConfigFilePrefixer::getKeyPrefix | ( | ) | const |
std::string mrpt::utils::CConfigFilePrefixer::getSectionPrefix | ( | ) | 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. |
Referenced by mrpt::pbmap::config_heuristics::load_params().
|
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. |
|
inlineinherited |
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:
In the config file:
Which can be loaded with:
Definition at line 194 of file CConfigFileBase.h.
References mrpt::format(), MRPT_END, MRPT_START, mrpt::utils::TEnumType< ENUMTYPE >::name2value(), and THROW_EXCEPTION.
|
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. |
Referenced by mrpt::pbmap::config_heuristics::load_params().
|
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. |
Referenced by mrpt::pbmap::config_heuristics::load_params().
|
inlineinherited |
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 157 of file CConfigFileBase.h.
References THROW_EXCEPTION_CUSTOM_MSG1.
|
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. |
Referenced by mrpt::pbmap::config_heuristics::load_params().
|
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. |
|
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. |
|
inlineinherited |
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 122 of file CConfigFileBase.h.
References mrpt::system::tokenize().
|
protectedvirtual |
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.
|
inherited |
Checks if a given section exists (name is case insensitive)
void mrpt::utils::CConfigFilePrefixer::setPrefixes | ( | const std::string & | prefix_sections, |
const std::string & | prefix_keys | ||
) |
Change the prefix for sections and keys.
Can be called at any moment.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protectedvirtual |
A virtual method to write a generic string.
Implements mrpt::utils::CConfigFileBase.
|
protectedinherited |
Write a generic string with optional padding and a comment field ("// ...") at the end of the line.
|
private |
The object we are wrapping.
Definition at line 39 of file CConfigFilePrefixer.h.
|
private |
Definition at line 40 of file CConfigFilePrefixer.h.
|
private |
Definition at line 40 of file CConfigFilePrefixer.h.
Page generated by Doxygen 1.9.7 for MRPT 1.4.0 SVN: at Tue Jun 27 15:23:24 UTC 2023 |