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

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... This is a virtual class, use only as a pointer to an implementation of one of the derived classes. More...
 

Namespaces

namespace  mrpt
 This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
 
namespace  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.
 
#define MRPT_LOAD_CONFIG_VAR_DEGREES(variableName, configFileObject, sectionNameStr)    { variableName = DEG2RAD( configFileObject.read_float(sectionNameStr,#variableName, RAD2DEG(variableName)) ); }
 Loads a float variable, stored as radians but entered in the INI-file as degrees:
 
#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_CONFIG_VAR_NO_DEFAULT(variableName, variableType, configFileObject, sectionNameStr)
 
#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, RAD2DEG(variableName)); }
 

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 222 of file CConfigFileBase.h.

◆ 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 230 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( format( "Value for '%s' not found in config file", static_cast<const char*>(#variableName ) )); \
} }\

Definition at line 254 of file CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREES

#define MRPT_LOAD_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)     { variableName = DEG2RAD( configFileObject.read_float(sectionNameStr,#variableName, RAD2DEG(variableName)) ); }

Loads a float variable, stored as radians but entered in the INI-file as degrees:

Definition at line 227 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( format( "Value for '%s' not found in config file", static_cast<const char*>(#variableName ) )); \
} }\

Definition at line 246 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 234 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 263 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( format( "Value for '%s' not found in config file", static_cast<const char*>(#variableName ) )); \
} }\

Definition at line 266 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( format( "Value for '%s' not found in config file", static_cast<const char*>(#variableName ) )); \
} }\

Definition at line 237 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR

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

Definition at line 275 of file CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES

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

Definition at line 278 of file CConfigFileBase.h.




Page generated by Doxygen 1.9.8 for MRPT 1.4.0 SVN: at Thu Dec 14 17:13:25 UTC 2023