Main MRPT website > C++ reference for MRPT 1.5.3
Classes | Namespaces | Macros | Variables
CConfigFileBase.h File Reference
#include <mrpt/utils/utils_defs.h>
#include <mrpt/system/string_utils.h>
#include <sstream>
#include <iomanip>

Go to the source code of this file.

Classes

struct  mrpt::utils::TEnumType< ENUMTYPE >
 A helper class that can convert an enum value into its textual representation, and viceversa. More...
 
class  mrpt::utils::CConfigFileBase
 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... More...
 

Namespaces

 mrpt
 This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
 
 mrpt::utils
 Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
 

Macros

#define MRPT_LOAD_CONFIG_VAR(variableName, variableType, configFileObject, sectionNameStr)   { variableName = configFileObject.read_##variableType(sectionNameStr,#variableName,variableName); }
 An useful macro for loading variables stored in a INI-like file under a key with the same name that the variable, and assigning the variable the current value if not found in the config file. More...
 
#define MRPT_LOAD_CONFIG_VAR_CS(variableName, variableType)   MRPT_LOAD_CONFIG_VAR(variableName,variableType,c,s)
 Shortcut for MRPT_LOAD_CONFIG_VAR() for config file object named c and section string named s More...
 
#define MRPT_LOAD_CONFIG_VAR_DEGREES(variableName, configFileObject, sectionNameStr)   { variableName = mrpt::utils::DEG2RAD( configFileObject.read_double(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName)) ); }
 Loads a double variable, stored as radians but entered in the INI-file as degrees. More...
 
#define MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT(variableName, configFileObject, sectionNameStr)   { variableName = mrpt::utils::DEG2RAD( configFileObject.read_double(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName),true) ); }
 Loads a double, required, variable, stored as radians but entered in the INI-file as degrees. More...
 
#define MRPT_LOAD_CONFIG_VAR_CAST(variableName, variableType, variableTypeCast, configFileObject, sectionNameStr)   { variableName = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,variableName)); }
 
#define MRPT_LOAD_HERE_CONFIG_VAR(variableName, variableType, targetVariable, configFileObject, sectionNameStr)   targetVariable = configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable,false);
 
#define MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT(variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES(variableName, variableType, targetVariable, configFileObject, sectionNameStr)   targetVariable = mrpt::utils::DEG2RAD( configFileObject.read_##variableType(sectionNameStr,#variableName,mrpt::utils::RAD2DEG(targetVariable),false));
 
#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT(variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_CONFIG_VAR_NO_DEFAULT(variableName, variableType, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_CONFIG_VAR_REQUIRED_CS(variableName, variableType)   MRPT_LOAD_CONFIG_VAR_NO_DEFAULT(variableName,variableType,c,s)
 Shortcut for MRPT_LOAD_CONFIG_VAR_NO_DEFAULT() for REQUIRED variables config file object named c and section string named s More...
 
#define MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT(variableName, variableType, variableTypeCast, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_CAST(variableName, variableType, variableTypeCast, targetVariable, configFileObject, sectionNameStr)   targetVariable = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable));
 
#define MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT(variableName, variableType, variableTypeCast, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR(variableName, configFileObject, sectionNameStr)   { configFileObject.write(sectionNameStr,#variableName,variableName); }
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES(variableName, configFileObject, sectionNameStr)   { configFileObject.write(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName)); }
 
#define MRPT_SAVE_CONFIG_VAR_COMMENT(variableName, __comment)   { c.write(s,#variableName,variableName,mrpt::utils::MRPT_SAVE_NAME_PADDING, mrpt::utils::MRPT_SAVE_VALUE_PADDING,__comment); }
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT(__entryName, __variable, __comment)   { c.write(s,__entryName,mrpt::utils::RAD2DEG(__variable),mrpt::utils::MRPT_SAVE_NAME_PADDING, mrpt::utils::MRPT_SAVE_VALUE_PADDING,__comment); }
 

Variables

int BASE_IMPEXP mrpt::utils::MRPT_SAVE_NAME_PADDING
 
int BASE_IMPEXP mrpt::utils::MRPT_SAVE_VALUE_PADDING
 Default padding sizes for macros MRPT_SAVE_CONFIG_VAR_COMMENT(), etc. More...
 

Macro Definition Documentation

◆ MRPT_LOAD_CONFIG_VAR

#define MRPT_LOAD_CONFIG_VAR (   variableName,
  variableType,
  configFileObject,
  sectionNameStr 
)    { variableName = configFileObject.read_##variableType(sectionNameStr,#variableName,variableName); }

An useful macro for loading variables stored in a INI-like file under a key with the same name that the variable, and assigning the variable the current value if not found in the config file.

The variableType must be the suffix of "read_XXX" functions, i.e. int, bool,...

Definition at line 190 of file CConfigFileBase.h.

Referenced by mrpt::bayes::TKF_options::loadFromConfigFile(), mrpt::maps::COctoMapBase< OCTREE, OCTREE_NODE >::TInsertionOptions::loadFromConfigFile(), and mrpt::maps::COctoMapBase< OCTREE, OCTREE_NODE >::TLikelihoodOptions::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_CAST

#define MRPT_LOAD_CONFIG_VAR_CAST (   variableName,
  variableType,
  variableTypeCast,
  configFileObject,
  sectionNameStr 
)    { variableName = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,variableName)); }

Definition at line 204 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT (   variableName,
  variableType,
  variableTypeCast,
  configFileObject,
  sectionNameStr 
)
Value:
{ try { \
variableName = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,variableName,true)); \
} catch (std::exception &) \
{ \
THROW_EXCEPTION( mrpt::format( "Value for '%s' not found in config file in section '%s'", static_cast<const char*>(#variableName ), std::string(sectionNameStr).c_str() )); \
} }\
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.

Definition at line 240 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_CS

#define MRPT_LOAD_CONFIG_VAR_CS (   variableName,
  variableType 
)    MRPT_LOAD_CONFIG_VAR(variableName,variableType,c,s)

Shortcut for MRPT_LOAD_CONFIG_VAR() for config file object named c and section string named s

Definition at line 194 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREES

#define MRPT_LOAD_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)    { variableName = mrpt::utils::DEG2RAD( configFileObject.read_double(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName)) ); }

Loads a double variable, stored as radians but entered in the INI-file as degrees.

Definition at line 197 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT (   variableName,
  configFileObject,
  sectionNameStr 
)    { variableName = mrpt::utils::DEG2RAD( configFileObject.read_double(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName),true) ); }

Loads a double, required, variable, stored as radians but entered in the INI-file as degrees.

Definition at line 201 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_NO_DEFAULT (   variableName,
  variableType,
  configFileObject,
  sectionNameStr 
)
Value:
{ try { \
variableName = configFileObject.read_##variableType(sectionNameStr,#variableName,variableName,true); \
} catch (std::exception &) \
{ \
THROW_EXCEPTION( mrpt::format( "Value for '%s' not found in config file in section '%s'", static_cast<const char*>(#variableName ), std::string(sectionNameStr).c_str() )); \
} }\
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.

Definition at line 229 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_REQUIRED_CS

#define MRPT_LOAD_CONFIG_VAR_REQUIRED_CS (   variableName,
  variableType 
)    MRPT_LOAD_CONFIG_VAR_NO_DEFAULT(variableName,variableType,c,s)

Shortcut for MRPT_LOAD_CONFIG_VAR_NO_DEFAULT() for REQUIRED variables config file object named c and section string named s

Definition at line 238 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR

#define MRPT_LOAD_HERE_CONFIG_VAR (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)    targetVariable = configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable,false);

Definition at line 208 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_CAST

#define MRPT_LOAD_HERE_CONFIG_VAR_CAST (   variableName,
  variableType,
  variableTypeCast,
  targetVariable,
  configFileObject,
  sectionNameStr 
)    targetVariable = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable));

Definition at line 249 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT (   variableName,
  variableType,
  variableTypeCast,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ try { \
targetVariable = static_cast<variableTypeCast>(configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable,true)); \
} catch (std::exception &) \
{ \
THROW_EXCEPTION( mrpt::format( "Value for '%s' not found in config file in section '%s'", static_cast<const char*>(#variableName ), std::string(sectionNameStr).c_str() )); \
} }\
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.

Definition at line 252 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_DEGREES

#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)    targetVariable = mrpt::utils::DEG2RAD( configFileObject.read_##variableType(sectionNameStr,#variableName,mrpt::utils::RAD2DEG(targetVariable),false));

Definition at line 218 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ try { \
targetVariable = mrpt::utils::DEG2RAD( configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable,true)); \
} catch (std::exception &) { \
THROW_EXCEPTION( mrpt::format( "Value for '%s' not found in config file in section '%s'", static_cast<const char*>(#variableName ), std::string(sectionNameStr).c_str() )); \
} }
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
double DEG2RAD(const double x)
Degrees to radians.
Definition: bits.h:82

Definition at line 221 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ try { \
targetVariable = configFileObject.read_##variableType(sectionNameStr,#variableName,targetVariable,true); \
} catch (std::exception &) { \
THROW_EXCEPTION( mrpt::format( "Value for '%s' not found in config file in section '%s'", static_cast<const char*>(#variableName ), std::string(sectionNameStr).c_str() )); \
} }
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.

Definition at line 211 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR

#define MRPT_SAVE_CONFIG_VAR (   variableName,
  configFileObject,
  sectionNameStr 
)    { configFileObject.write(sectionNameStr,#variableName,variableName); }

Definition at line 261 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_COMMENT

#define MRPT_SAVE_CONFIG_VAR_COMMENT (   variableName,
  __comment 
)    { c.write(s,#variableName,variableName,mrpt::utils::MRPT_SAVE_NAME_PADDING, mrpt::utils::MRPT_SAVE_VALUE_PADDING,__comment); }

Definition at line 267 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES

#define MRPT_SAVE_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)    { configFileObject.write(sectionNameStr,#variableName, mrpt::utils::RAD2DEG(variableName)); }

Definition at line 264 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT

#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT (   __entryName,
  __variable,
  __comment 
)    { c.write(s,__entryName,mrpt::utils::RAD2DEG(__variable),mrpt::utils::MRPT_SAVE_NAME_PADDING, mrpt::utils::MRPT_SAVE_VALUE_PADDING,__comment); }

Definition at line 269 of file CConfigFileBase.h.




Page generated by Doxygen 1.8.13 for MRPT 1.5.3 at Tue Aug 22 01:03:35 UTC 2017