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>
Public Member Functions | |
virtual | ~CConfigFileBase () |
dtor More... | |
virtual void | getAllSections (std::vector< std::string > §ions) const =0 |
Returns a list with all the section names. More... | |
virtual void | getAllKeys (const std::string §ion, std::vector< std::string > &keys) const =0 |
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... | |
template<typename enum_t , typename = std::enable_if_t<std::is_enum<enum_t>::value>> | |
void | write (const std::string §ion, 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 §ion, const std::string &name, const std::string &str)=0 |
A virtual method to write 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... | |
virtual std::string | readString (const std::string §ion, 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 |
|
virtual |
dtor
Definition at line 32 of file CConfigFileBase.cpp.
|
pure virtual |
Returs a list with all the keys into a section.
Implemented in mrpt::config::CConfigFile, mrpt::config::CConfigFilePrefixer, and mrpt::config::CConfigFileMemory.
Referenced by mrpt::config::CConfigFilePrefixer::getAllKeys().
|
pure virtual |
Returns a list with all the section names.
Implemented in mrpt::config::CConfigFile, mrpt::config::CConfigFilePrefixer, and mrpt::config::CConfigFileMemory.
Referenced by mrpt::config::CConfigFilePrefixer::getAllSections().
bool CConfigFileBase::read_bool | ( | const std::string & | section, |
const std::string & | name, | ||
bool | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 150 of file CConfigFileBase.cpp.
References mrpt::system::lowerCase(), and trim().
Referenced by mrpt::detectors::CFaceDetection::init(), mrpt::pbmap::config_heuristics::load_params(), mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CIMUIntersense::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSkeletonTracker::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCANBusReader::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserSerial::loadConfig_sensorSpecific(), mrpt::hwdrivers::CPhidgetInterfaceKitProximitySensors::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::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), readConfigFile(), CGraphSlamHandler< GRAPH_T >::readConfigFname(), and mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel().
double CConfigFileBase::read_double | ( | const std::string & | section, |
const std::string & | name, | ||
double | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 101 of file CConfigFileBase.cpp.
Referenced by mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::detectors::CFaceDetection::init(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CGPSInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), mrpt::img::TCamera::loadFromConfigFile(), mrpt::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::nav::CPTG_RobotShape_Polygonal::loadShapeFromConfigFile(), mrpt::topography::path_from_rtk_gps(), and TEST().
|
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:
In the config file:
Which can be loaded with:
Definition at line 245 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(), and mrpt::hwdrivers::CKinect::loadConfig_sensorSpecific().
float CConfigFileBase::read_float | ( | const std::string & | section, |
const std::string & | name, | ||
float | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 113 of file CConfigFileBase.cpp.
Referenced by mrpt::pbmap::config_heuristics::load_params(), mrpt::hwdrivers::CWirelessPower::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGillAnemometer::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRaePID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserUSB::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUIntersense::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSkeletonTracker::loadConfig_sensorSpecific(), mrpt::hwdrivers::CGyroKVHDSP3000::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::CPhidgetInterfaceKitProximitySensors::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::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), and readConfigFile().
int CConfigFileBase::read_int | ( | const std::string & | section, |
const std::string & | name, | ||
int | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 125 of file CConfigFileBase.cpp.
Referenced by mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::detectors::CFaceDetection::init(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::pbmap::config_heuristics::load_params(), mrpt::hwdrivers::CGenericSensor::loadConfig(), mrpt::hwdrivers::CGillAnemometer::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRaePID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CRoboticHeadInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens::loadConfig_sensorSpecific(), mrpt::hwdrivers::CImpinjRFID::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::CPhidgetInterfaceKitProximitySensors::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::vision::TMultiResDescOptions::loadFromConfigFile(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), readConfigFile(), mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel(), and TEST().
|
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
std::exception | If the key name is not found and "failIfNotFound" is true. Otherwise the "defaultValue" is returned. |
Definition at line 206 of file config/CConfigFileBase.h.
References readString(), and THROW_EXCEPTION_FMT.
Referenced by mrpt::topography::path_from_rtk_gps().
std::string CConfigFileBase::read_string | ( | const std::string & | section, |
const std::string & | name, | ||
const std::string & | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 169 of file CConfigFileBase.cpp.
References mrpt::system::trim().
Referenced by mrpt::detectors::CCascadeClassifierDetection::init(), mrpt::nav::PlannerTPS_VirtualBase::internal_loadConfig_PTG(), mrpt::pbmap::config_heuristics::load_params(), 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::CIMUXSens_MT4::loadConfig_sensorSpecific(), mrpt::hwdrivers::CIMUXSens::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSickLaserUSB::loadConfig_sensorSpecific(), mrpt::hwdrivers::CImpinjRFID::loadConfig_sensorSpecific(), mrpt::hwdrivers::CEnoseModular::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardENoses::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::CPhidgetInterfaceKitProximitySensors::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::img::TStereoCamera::loadFromConfigFile(), mrpt::hwdrivers::TCaptureOptions_DUO3D::loadOptionsFrom(), mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom(), mrpt::graphslam::CGraphSlamEngine< mrpt::graphs::CNetworkOfPoses2DInf >::loadParams(), readConfigFile(), CGraphSlamHandler< GRAPH_T >::readConfigFname(), mrpt::gui::CPanelCameraSelection::readConfigIntoVideoSourcePanel(), TEST(), and mrpt::gui::CPanelCameraSelection::writeConfigFromVideoSourcePanel().
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 180 of file CConfigFileBase.cpp.
References THROW_EXCEPTION, and mrpt::system::tokenize().
Referenced by mrpt::hwdrivers::CCameraSensor::loadConfig_sensorSpecific(), and read_enum().
uint64_t CConfigFileBase::read_uint64_t | ( | const std::string & | section, |
const std::string & | name, | ||
uint64_t | defaultValue, | ||
bool | failIfNotFound = false |
||
) | const |
Definition at line 137 of file CConfigFileBase.cpp.
References mrpt::system::os::_strtoull().
Referenced by mrpt::hwdrivers::CEnoseModular::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardENoses::loadConfig_sensorSpecific(), mrpt::hwdrivers::CSwissRanger3DCamera::loadConfig_sensorSpecific(), mrpt::hwdrivers::CNationalInstrumentsDAQ::loadConfig_sensorSpecific(), mrpt::maps::TSetOfMetricMapInitializers::loadFromConfigFile(), and mrpt::hwdrivers::TCaptureOptions_FlyCapture2::loadOptionsFrom().
|
inline |
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 171 of file config/CConfigFileBase.h.
References readString(), mrpt::system::tokenize(), and val.
Referenced by mrpt::hwdrivers::C2DRangeFinderAbstract::loadCommonParams(), mrpt::hwdrivers::CRoboticHeadInterface::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardENoses::loadConfig_sensorSpecific(), mrpt::hwdrivers::CBoardSonars::loadConfig_sensorSpecific(), mrpt::img::TCamera::loadFromConfigFile(), and mrpt::vision::TMultiResDescOptions::loadFromConfigFile().
|
protectedpure virtual |
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. |
Implemented in mrpt::config::CConfigFileMemory, mrpt::config::CConfigFile, and mrpt::config::CConfigFilePrefixer.
Referenced by read_matrix(), read_vector(), and mrpt::config::CConfigFilePrefixer::readString().
bool CConfigFileBase::sectionExists | ( | const std::string & | section_name | ) | const |
Checks if a given section exists (name is case insensitive)
Definition at line 205 of file CConfigFileBase.cpp.
References mrpt::system::os::_strcmpi().
Referenced by mrpt::hwdrivers::CPhidgetInterfaceKitProximitySensors::loadConfig_sensorSpecific(), and mrpt::hwdrivers::COpenNI2Sensor::loadConfig_sensorSpecific().
|
inline |
Definition at line 101 of file config/CConfigFileBase.h.
References mrpt::to_string(), and writeString().
|
inline |
Definition at line 112 of file config/CConfigFileBase.h.
References mrpt::to_string(), and writeString().
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 33 of file CConfigFileBase.cpp.
|
inline |
Definition at line 85 of file config/CConfigFileBase.h.
Referenced by run_rnav_test(), mrpt::nav::CPTG_DiffDrive_CCS::saveToConfigFile(), mrpt::nav::CPTG_Holo_Blend::saveToConfigFile(), mrpt::nav::CPTG_DiffDrive_CC::saveToConfigFile(), mrpt::nav::CPTG_DiffDrive_CS::saveToConfigFile(), mrpt::nav::CPTG_DiffDrive_alpha::saveToConfigFile(), mrpt::nav::CPTG_DiffDrive_C::saveToConfigFile(), mrpt::img::TCamera::saveToConfigFile(), mrpt::nav::CPTG_DiffDrive_CollisionGridBased::saveToConfigFile(), mrpt::nav::CParameterizedTrajectoryGenerator::saveToConfigFile(), mrpt::nav::CPTG_RobotShape_Polygonal::saveToConfigFile(), mrpt::nav::CPTG_RobotShape_Circular::saveToConfigFile(), mrpt::vision::TMultiResDescMatchOptions::saveToConfigFile(), mrpt::vision::TMultiResDescOptions::saveToConfigFile(), TEST(), and mrpt::gui::CPanelCameraSelection::writeConfigFromVideoSourcePanel().
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 47 of file CConfigFileBase.cpp.
|
protectedpure virtual |
A virtual method to write a generic string.
Implemented in mrpt::config::CConfigFileMemory, mrpt::config::CConfigFilePrefixer, and mrpt::config::CConfigFile.
Referenced by write(), and mrpt::config::CConfigFilePrefixer::writeString().
|
protected |
Write a generic string with optional padding and a comment field ("// ...") at the end of the line.
Definition at line 65 of file CConfigFileBase.cpp.
References mrpt::format().
|
friend |
Definition at line 46 of file config/CConfigFileBase.h.
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |