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:
See: Configuration file format in MRPT
Definition at line 37 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() More... | |
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. More... | |
void | bind (const CConfigFileBase &o) |
Make this object to wrap the given existing CConfigFileBase object. More... | |
void | setPrefixes (const std::string &prefix_sections, const std::string &prefix_keys) |
Change the prefix for sections and keys. More... | |
std::string | getSectionPrefix () const |
std::string | getKeyPrefix () const |
CConfigFileBase * | getBoundConfigFileBase () const |
Returns the currently-bounded config source, or NULL if none. More... | |
virtual | ~CConfigFilePrefixer () |
void | getAllSections (vector_string §ions) const MRPT_OVERRIDE |
Returns a list with all the section names. More... | |
void | getAllKeys (const std::string §ion, vector_string &keys) const MRPT_OVERRIDE |
Returs a list with all the keys into a section. More... | |
bool | sectionExists (const std::string §ion_name) const |
Checks if a given section exists (name is case insensitive) More... | |
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). | |
template<typename data_t > | |
void | write (const std::string §ion, const std::string &name, const data_t &value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string()) |
template<typename data_t > | |
void | write (const std::string §ion, const std::string &name, const std::vector< data_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, 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()) |
Read a configuration parameter, launching exception if key name is not found and `failIfNotFound`=true | |
double | read_double (const std::string §ion, const std::string &name, double defaultValue, bool failIfNotFound=false) const |
float | read_float (const std::string §ion, const std::string &name, float defaultValue, bool failIfNotFound=false) const |
bool | read_bool (const std::string §ion, const std::string &name, bool defaultValue, bool failIfNotFound=false) const |
int | read_int (const std::string §ion, const std::string &name, int defaultValue, bool failIfNotFound=false) const |
uint64_t | read_uint64_t (const std::string §ion, const std::string &name, uint64_t defaultValue, bool failIfNotFound=false) const |
std::string | read_string (const std::string §ion, const std::string &name, const std::string &defaultValue, bool failIfNotFound=false) const |
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) More... | |
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. More... | |
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]". More... | |
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: More... | |
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. More... | |
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. More... | |
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. More... | |
Private Attributes | |
CConfigFileBase * | m_bound_object |
The object we are wrapping. More... | |
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 |
Referenced by mrpt::pbmap::config_heuristics::load_params(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::GraphVisualizationParams::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::TLaserParams::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::TLoopClosureParams::loadFromConfigFile(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::loadParams(), and CGraphSlamHandler< GRAPH_T >::readConfigFname().
|
inherited |
Referenced by mrpt::graphslam::deciders::CFixedIntervalsNRD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::loadFromConfigFile(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::GraphVisualizationParams::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::TLoopClosureParams::loadFromConfigFile(), and mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::loadParams().
|
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 163 of file CConfigFileBase.h.
References MRPT_END, MRPT_START, mrpt::utils::TEnumType< ENUMTYPE >::name2value(), and THROW_EXCEPTION_FMT.
|
inherited |
Referenced by mrpt::pbmap::config_heuristics::load_params().
|
inherited |
Referenced by mrpt::pbmap::config_heuristics::load_params(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::loadFromConfigFile(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::GraphVisualizationParams::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::TLaserParams::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::TLoopClosureParams::loadFromConfigFile(), mrpt::graphslam::deciders::CFixedIntervalsNRD< GRAPH_T >::loadParams(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::loadParams(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::loadParams(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::loadParams(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::loadParams(), and mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::loadParams().
|
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 126 of file CConfigFileBase.h.
References THROW_EXCEPTION_FMT.
|
inherited |
Referenced by mrpt::pbmap::config_heuristics::load_params(), mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::loadParams(), and CGraphSlamHandler< GRAPH_T >::readConfigFname().
|
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)
|
inherited |
|
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 92 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.
|
inlineinherited |
Definition at line 63 of file CConfigFileBase.h.
References exprtk::details::value().
|
inlineinherited |
Definition at line 70 of file CConfigFileBase.h.
|
inherited |
|
inherited |
|
protectedinherited |
Write a generic string with optional padding and a comment field ("// ...") at the end of the line.
|
protectedvirtual |
A virtual method to write a generic string.
Implements mrpt::utils::CConfigFileBase.
|
private |
The object we are wrapping.
Definition at line 40 of file CConfigFilePrefixer.h.
|
private |
Definition at line 41 of file CConfigFilePrefixer.h.
|
private |
Definition at line 41 of file CConfigFilePrefixer.h.
Page generated by Doxygen 1.8.13 for MRPT 1.5.3 at Tue Aug 22 01:03:35 UTC 2017 |