MRPT  2.0.3
List of all members | Public Member Functions | Protected Member Functions | Friends
mrpt::config::CConfigFileBase Class Referenceabstract

Detailed Description

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.

See: Configuration file format in MRPT

Definition at line 44 of file config/CConfigFileBase.h.

#include <mrpt/config/CConfigFileBase.h>

Inheritance diagram for mrpt::config::CConfigFileBase:

Public Member Functions

virtual ~CConfigFileBase ()
 dtor More...
 
virtual void getAllSections (std::vector< std::string > &sections) const =0
 Returns a list with all the section names. More...
 
virtual void getAllKeys (const std::string &section, std::vector< std::string > &keys) const =0
 Returs a list with all the keys into a section. More...
 
bool sectionExists (const std::string &section_name) const
 Checks if a given section exists (name is case insensitive) More...
 
bool keyExists (const std::string &section, const std::string &key) const
 Checks if a given key exists inside a section (case insensitive) More...
 
void setContentFromYAML (const std::string &yaml_block)
 Changes the contents of the virtual "config file" from a text block containing a YAML configuration text. More...
 
std::string getContentAsYAML () const
 Returns a text block representing the contents of the config file in YAML format. More...
 
virtual void clear ()=0
 Empties the "config file". More...
 
template<typename enum_t , typename = std::enable_if_t<std::is_enum<enum_t>::value>>
void write (const std::string &section, const std::string &name, enum_t value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string())
 

Protected Member Functions

virtual void writeString (const std::string &section, const std::string &name, const std::string &str)=0
 A virtual method to write a generic string. More...
 
void writeString (const std::string &section, 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...
 
virtual std::string readString (const std::string &section, const std::string &name, const std::string &defaultStr, bool failIfNotFound=false) const =0
 A virtual method to read a generic string. More...
 

Friends

class CConfigFilePrefixer
 

Constructor & Destructor Documentation

◆ ~CConfigFileBase()

CConfigFileBase::~CConfigFileBase ( )
virtualdefault

dtor

Member Function Documentation

◆ clear()

virtual void mrpt::config::CConfigFileBase::clear ( )
pure virtual

◆ getAllKeys()

virtual void mrpt::config::CConfigFileBase::getAllKeys ( const std::string &  section,
std::vector< std::string > &  keys 
) const
pure virtual

◆ getAllSections()

virtual void mrpt::config::CConfigFileBase::getAllSections ( std::vector< std::string > &  sections) const
pure virtual

◆ getContentAsYAML()

std::string CConfigFileBase::getContentAsYAML ( ) const

Returns a text block representing the contents of the config file in YAML format.

See also
setContentFromYAML()

Definition at line 277 of file CConfigFileBase.cpp.

References MRPT_END, MRPT_START, sect, THROW_EXCEPTION, and val.

◆ keyExists()

bool CConfigFileBase::keyExists ( const std::string &  section,
const std::string &  key 
) const

Checks if a given key exists inside a section (case insensitive)

See also
sectionExists()

Definition at line 215 of file CConfigFileBase.cpp.

References mrpt::system::os::_strcmpi().

Referenced by mrpt::apps::ICP_SLAM_App_Base::run(), mrpt::apps::RBPF_SLAM_App_Base::run(), and TEST().

◆ read_bool()

bool CConfigFileBase::read_bool ( const std::string &  section,
const std::string &  name,
bool  defaultValue,
bool  failIfNotFound = false 
) const

Definition at line 155 of file CConfigFileBase.cpp.

References mrpt::system::lowerCase(), and trim().

Referenced by mrpt::detectors::CFaceDetection::init(), mrpt::nav::TWaypointSequence::load(), mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CNTRIPEmitter::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUIntersense::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSkeletonTracker::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCANBusReader::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2_RGBD360::loadConfig_sensorSpecific(), mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::nav::CAbstractNavigator::loadConfigFile(), 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::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), CGraphSlamHandler< GRAPH_T >::readConfigFname(), mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel(), mrpt::apps::ICP_SLAM_App_Base::run(), and mrpt::apps::RawlogGrabberApp::runImpl().

◆ read_double()

double CConfigFileBase::read_double ( const std::string &  section,
const std::string &  name,
double  defaultValue,
bool  failIfNotFound = false 
) const

Definition at line 106 of file CConfigFileBase.cpp.

References mrpt::format().

Referenced by mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::detectors::CFaceDetection::init(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::nav::TWaypointSequence::load(), mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::nav::CReactiveNavigationSystem::loadConfigFile(), mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::img::TCamera::loadFromConfigFile(), mrpt::nav::CHolonomicFullEval::TOptions::loadFromConfigFile(), 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::deciders::CICPCriteriaNRD< 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 >::TLoopClosureParams::loadFromConfigFile(), mrpt::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::loadParams(), mrpt::nav::CPTG_RobotShape_Polygonal::loadShapeFromConfigFile(), mrpt::topography::path_from_rtk_gps(), and TEST().

◆ read_enum()

template<typename ENUMTYPE >
ENUMTYPE mrpt::config::CConfigFileBase::read_enum ( const std::string &  section,
const std::string &  name,
const ENUMTYPE &  defaultValue,
bool  failIfNotFound = false 
) const
inline

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:

enum my_type_t { type_foo=0, type_bar };

In the config file:

[section]
type = type_bar // Use the symbolic name, or
type = 1 // use the numerical value (both lines will be
equivalent)

Which can be loaded with:

cfgfile.read_enum<my_type_t>("section","type", type_foo );
Note
For an enum type to work with this template it is required that it defines a specialization of mrpt::typemeta::TEnumType

Definition at line 269 of file config/CConfigFileBase.h.

References MRPT_END, MRPT_START, mrpt::typemeta::TEnumType< ENUMTYPE >::name2value(), read_string_first_word(), and THROW_EXCEPTION_FMT.

Referenced by mrpt::hwdrivers::CVelodyneScanner::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific(), mrpt::slam::CMetricMapBuilderICP::TConfigParams::loadFromConfigFile(), mrpt::slam::CRangeBearingKFSLAM2D::TOptions::loadFromConfigFile(), mrpt::slam::CRangeBearingKFSLAM::TOptions::loadFromConfigFile(), mrpt::maps::CColouredPointsMap::TColourOptions::loadFromConfigFile(), mrpt::maps::CWirelessPowerGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CHeightGridMap2D_MRF::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CHeightGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CGasConcentrationGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::apps::RBPF_SLAM_App_Base::run(), and mrpt::apps::ICP_SLAM_App_Base::run().

◆ read_float()

float CConfigFileBase::read_float ( const std::string &  section,
const std::string &  name,
float  defaultValue,
bool  failIfNotFound = false 
) const

Definition at line 118 of file CConfigFileBase.cpp.

References mrpt::format().

Referenced by mrpt::hwdrivers::CWirelessPower::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGillAnemometer::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRaePID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserUSB::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUIntersense::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGyroKVHDSP3000::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSkeletonTracker::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRoboPeakLidar::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIbeoLuxETH::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSICKTim561Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardSonars::loadConfig_sensorSpecific(), mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), mrpt::hwdrivers::CVelodyneScanner::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2_RGBD360::loadConfig_sensorSpecific(), mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::nav::CReactiveNavigationSystem3D::loadConfigFile(), mrpt::slam::CRangeBearingKFSLAM2D::TOptions::loadFromConfigFile(), mrpt::slam::CRangeBearingKFSLAM::TOptions::loadFromConfigFile(), mrpt::maps::CLandmarksMap::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), and mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom().

◆ read_int()

int CConfigFileBase::read_int ( const std::string &  section,
const std::string &  name,
int  defaultValue,
bool  failIfNotFound = false 
) const

Definition at line 130 of file CConfigFileBase.cpp.

References mrpt::format().

Referenced by mrpt::apps::ICP_SLAM_App_Rawlog::impl_initialize(), mrpt::apps::RBPF_SLAM_App_Rawlog::impl_initialize(), mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::detectors::CFaceDetection::init(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::nav::TWaypointSequence::load(), mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CGillAnemometer::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRaePID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRoboticHeadInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CNTRIPEmitter::loadConfig_sensorSpecific(), mrpt::hwdrivers::CImpinjRFID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUIntersense::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSICKTim561Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCANBusReader::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardSonars::loadConfig_sensorSpecific(), mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2_RGBD360::loadConfig_sensorSpecific(), mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::nav::CReactiveNavigationSystem::loadConfigFile(), mrpt::nav::CReactiveNavigationSystem3D::loadConfigFile(), mrpt::graphslam::TSlidingWindow::loadFromConfigFile(), 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::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::maps::CLandmarksMap::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), 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::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::loadParams(), mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel(), mrpt::apps::ICP_SLAM_App_Base::run(), and TEST().

◆ read_matrix()

template<class MATRIX_TYPE >
void mrpt::config::CConfigFileBase::read_matrix ( const std::string &  section,
const std::string &  name,
MATRIX_TYPE &  outMatrix,
const MATRIX_TYPE &  defaultMatrix = MATRIX_TYPE(),
bool  failIfNotFound = false 
) const
inline

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

Exceptions
std::exceptionIf the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned.

Definition at line 230 of file config/CConfigFileBase.h.

References readString(), and THROW_EXCEPTION_FMT.

Referenced by mrpt::topography::path_from_rtk_gps().

◆ read_string()

std::string CConfigFileBase::read_string ( const std::string &  section,
const std::string &  name,
const std::string &  defaultValue,
bool  failIfNotFound = false 
) const

Definition at line 171 of file CConfigFileBase.cpp.

References mrpt::system::trim().

Referenced by mrpt::apps::ICP_SLAM_App_Rawlog::impl_initialize(), mrpt::apps::RBPF_SLAM_App_Rawlog::impl_initialize(), mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::apps::KFSLAMApp::initialize(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::nav::TWaypointSequence::load(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CWirelessPower::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGillAnemometer::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRaePID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRoboticHeadInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserUSB::loadConfig_sensorSpecific(), mrpt::hwdrivers::CNTRIPEmitter::loadConfig_sensorSpecific(), mrpt::hwdrivers::CImpinjRFID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CEnoseModular::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardENoses::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGyroKVHDSP3000::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRoboPeakLidar::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSICKTim561Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCANBusReader::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardSonars::loadConfig_sensorSpecific(), mrpt::hwdrivers::CLMS100Eth::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CHokuyoURG::loadConfig_sensorSpecific(), mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific(), mrpt::hwdrivers::CNationalInstrumentsDAQ::loadConfig_sensorSpecific(), mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::nav::CNavigatorManualSequence::loadConfigFile(), mrpt::nav::CReactiveNavigationSystem::loadConfigFile(), mrpt::nav::CReactiveNavigationSystem3D::loadConfigFile(), mrpt::img::TStereoCamera::loadFromConfigFile(), mrpt::nav::CMultiObjectiveMotionOptimizerBase::TParamsBase::loadFromConfigFile(), mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::TParams::loadFromConfigFile(), mrpt::hmtslam::CHMTSLAM::TOptions::loadFromConfigFile(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), CGraphSlamHandler< GRAPH_T >::readConfigFname(), mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel(), mrpt::apps::KFSLAMApp::run(), mrpt::apps::ICP_SLAM_App_Base::run(), mrpt::apps::RBPF_SLAM_App_Base::run(), mrpt::apps::RawlogGrabberApp::SensorThread(), mrpt::apps::ICP_SLAM_App_Live::SensorThread(), TEST(), and mrpt::gui::CPanelCameraSelection::writeConfigFromVideoSourcePanel().

◆ read_string_first_word()

std::string CConfigFileBase::read_string_first_word ( const std::string &  section,
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)

Definition at line 182 of file CConfigFileBase.cpp.

References mrpt::format(), THROW_EXCEPTION, and mrpt::system::tokenize().

Referenced by mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), and read_enum().

◆ read_uint64_t()

uint64_t CConfigFileBase::read_uint64_t ( const std::string &  section,
const std::string &  name,
uint64_t  defaultValue,
bool  failIfNotFound = false 
) const

◆ read_vector()

template<class VECTOR_TYPE >
void mrpt::config::CConfigFileBase::read_vector ( const std::string &  section,
const std::string &  name,
const VECTOR_TYPE &  defaultValue,
VECTOR_TYPE &  outValues,
bool  failIfNotFound = false 
) const
inline

◆ readString()

virtual std::string mrpt::config::CConfigFileBase::readString ( const std::string &  section,
const std::string &  name,
const std::string &  defaultStr,
bool  failIfNotFound = false 
) const
protectedpure virtual

A virtual method to read a generic string.

Exceptions
std::exceptionIf the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned.

Implemented in mrpt::config::CConfigFileMemory, mrpt::config::CConfigFile, and mrpt::config::CConfigFilePrefixer.

Referenced by read_matrix(), read_vector(), and mrpt::config::CConfigFilePrefixer::readString().

◆ sectionExists()

bool CConfigFileBase::sectionExists ( const std::string &  section_name) const

Checks if a given section exists (name is case insensitive)

See also
keyExists()

Definition at line 205 of file CConfigFileBase.cpp.

References mrpt::system::os::_strcmpi(), and sect.

Referenced by mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific(), mrpt::apps::CGridMapAlignerApp::run(), and TEST().

◆ setContentFromYAML()

void CConfigFileBase::setContentFromYAML ( const std::string &  yaml_block)

Changes the contents of the virtual "config file" from a text block containing a YAML configuration text.

Refer to unit test yaml2config_unittest.cpp for examples of use.

See also
getContentAsYAML()

Definition at line 225 of file CConfigFileBase.cpp.

References mrpt::containers::clear(), MRPT_END, MRPT_START, sect, THROW_EXCEPTION, and val.

◆ write() [1/5]

template<typename data_t , typename = std::enable_if_t<!std::is_enum<data_t>::value>>
void mrpt::config::CConfigFileBase::write ( const std::string &  section,
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() 
)
inline

Definition at line 124 of file config/CConfigFileBase.h.

References mrpt::to_string(), and writeString().

◆ write() [2/5]

template<typename data_t >
void mrpt::config::CConfigFileBase::write ( const std::string &  section,
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() 
)
inline

Definition at line 135 of file config/CConfigFileBase.h.

References mrpt::to_string(), and writeString().

◆ write() [3/5]

void CConfigFileBase::write ( const std::string &  section,
const std::string &  name,
double  value,
const int  name_padding_width = -1,
const int  value_padding_width = -1,
const std::string &  comment = std::string() 
)

Definition at line 38 of file CConfigFileBase.cpp.

References mrpt::format().

◆ write() [4/5]

template<typename enum_t , typename = std::enable_if_t<std::is_enum<enum_t>::value>>
void mrpt::config::CConfigFileBase::write ( const std::string &  section,
const std::string &  name,
enum_t  value,
const int  name_padding_width = -1,
const int  value_padding_width = -1,
const std::string &  comment = std::string() 
)
inline

◆ write() [5/5]

void CConfigFileBase::write ( const std::string &  section,
const std::string &  name,
float  value,
const int  name_padding_width = -1,
const int  value_padding_width = -1,
const std::string &  comment = std::string() 
)

Definition at line 52 of file CConfigFileBase.cpp.

References mrpt::format().

◆ writeString() [1/2]

virtual void mrpt::config::CConfigFileBase::writeString ( const std::string &  section,
const std::string &  name,
const std::string &  str 
)
protectedpure virtual

◆ writeString() [2/2]

void CConfigFileBase::writeString ( const std::string &  section,
const std::string &  name,
const std::string &  str,
const int  name_padding_width,
const int  value_padding_width,
const std::string &  comment 
)
protected

Write a generic string with optional padding and a comment field ("// ...") at the end of the line.

Definition at line 70 of file CConfigFileBase.cpp.

References mrpt::format().

Friends And Related Function Documentation

◆ CConfigFilePrefixer

friend class CConfigFilePrefixer
friend

Definition at line 46 of file config/CConfigFileBase.h.




Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 15 15:49:54 UTC 2020