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

Go to the source code of this file.

Classes

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)
 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)
 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)
 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)
 
#define MRPT_LOAD_HERE_CONFIG_VAR( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#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)
 
#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)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT( variableName, variableType, variableTypeCast, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR(variableName, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES( variableName, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR_COMMENT(variableName, __comment)
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT( __entryName, __variable, __comment)
 

Functions

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

Macro Definition Documentation

◆ MRPT_LOAD_CONFIG_VAR

#define MRPT_LOAD_CONFIG_VAR (   variableName,
  variableType,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
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 279 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_CAST

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

Definition at line 313 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( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
GLsizei const GLchar ** string
Definition: glext.h:4101
std::string format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
Definition: format.cpp:19

Definition at line 398 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 288 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREES

#define MRPT_LOAD_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = mrpt::utils::DEG2RAD( \
configFileObject.read_double( \
sectionNameStr, #variableName, \
mrpt::utils::RAD2DEG(variableName))); \
}
double DEG2RAD(const double x)
Degrees to radians.
Definition: bits.h:96
double RAD2DEG(const double x)
Radians to degrees.
Definition: bits.h:102

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

Definition at line 293 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
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 304 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( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}

Definition at line 375 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 395 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR

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

Definition at line 322 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_CAST

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

Definition at line 418 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( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}

Definition at line 425 of file CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_DEGREES

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

Definition at line 347 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( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}

Definition at line 355 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( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}

Definition at line 328 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR

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

Definition at line 445 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_COMMENT

#define MRPT_SAVE_CONFIG_VAR_COMMENT (   variableName,
  __comment 
)
Value:
{ \
c.write( \
s, #variableName, variableName, \
}
GLdouble s
Definition: glext.h:3676
int MRPT_SAVE_VALUE_PADDING()
int MRPT_SAVE_NAME_PADDING()
Default padding sizes for macros MRPT_SAVE_CONFIG_VAR_COMMENT(), etc.

Definition at line 458 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES

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

Definition at line 450 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT

#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT (   __entryName,
  __variable,
  __comment 
)
Value:
{ \
c.write( \
s, __entryName, mrpt::utils::RAD2DEG(__variable), \
}

Definition at line 465 of file CConfigFileBase.h.




Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 63ea9d1f1 Thu Nov 23 00:06:53 2017 +0100 at mar 26 may 2026 12:19:29 CEST