Config Class Reference

The Config class is the base class of all specialized configurations that have a direct key -> value mapping. More...

#include <armarx/control/hardware_config/Config.h>

+ Inheritance diagram for Config:

Public Member Functions

virtual bool checkAllItemsRead (std::vector< std::string > &errors) const
 This method is called once the device has read the configuration data it needs.
 
 Config ()
 
bool getBool (const std::string name)
 Get a Bool typed Config attribute by name.
 
std::list< bool > getBoolList (const std::string name)
 Get a BoolList (std::list<bool>) typed Config attribute by name.
 
float getFloat (const std::string name)
 Get a Float typed Config attribute by name.
 
std::list< float > getFloatList (const std::string name)
 Get a FloatList (std::list<float>) typed Config attribute by name.
 
std::int32_t getInt (const std::string name)
 Get a Int (std::int32_t) typed Config attribute by name.
 
std::list< std::int32_t > getIntList (const std::string name)
 Get a IntList (std::list<std::int32_t>) typed Config attribute by name.
 
types::LinearConfig getLinearConfig (const std::string name)
 Get a LinearConvertedValue typed Config attribute by name.
 
template<typename Type, int Rows, int Columns>
Eigen::Matrix< Type, Rows, Columns > getMatrix (const std::string name)
 Get a Matrix by name.
 
types::ModularConvertedValueConfig getModularConvertedValueConfig (const std::string &name)
 Get a ModularConvertedValue typed Config attribute by name.
 
std::string getString (const std::string name)
 Get a String typed Config attribute by name.
 
std::uint32_t getUint (const std::string name)
 Get a Uint (std::uint32_t) typed Config attribute by name.
 
std::list< std::uint32_t > getUintList (const std::string name)
 Get a UIntList (std::list<std::uint32_t>) typed Config attribute by name.
 
virtual void onParsingFinished ()
 This method is called when the config is completely read form the HardwareConfig file.
 
virtual void print (std::stringstream &s, int indention) const
 Print this configuration.
 
virtual ~Config ()=default
 

Protected Member Functions

template<typename T>
T get (const std::string name)
 
template<typename T>
std::optional< T > get_nothrow (const std::string name)
 
template<class T>
void set (const std::string name, T value, ConfigTag tag)
 
void setBool (const std::string name, bool value, ConfigTag tag)
 
void setBoolList (const std::string name, std::list< bool > value, ConfigTag tag)
 
void setFloat (const std::string name, float value, ConfigTag tag)
 
void setFloatList (const std::string name, std::list< float > value, ConfigTag tag)
 
void setInt (const std::string name, std::int32_t value, ConfigTag tag)
 
void setIntList (const std::string name, std::list< std::int32_t > value, ConfigTag tag)
 
void setLinearConfig (const std::string name, types::LinearConfig &&value, ConfigTag tag)
 
void setModularConvertedValueConfig (const std::string name, types::ModularConvertedValueConfig &&value, ConfigTag tag)
 
void setString (const std::string name, std::string value, ConfigTag tag)
 
void setUint (const std::string name, std::uint32_t value, ConfigTag tag)
 
void setUintList (const std::string name, std::list< std::uint32_t > value, ConfigTag tag)
 

Protected Attributes

std::map< std::string, ConfigItemWithMetadata > items
 

Friends

class ConfigParser
 
class ControllerConfig
 

Detailed Description

The Config class is the base class of all specialized configurations that have a direct key -> value mapping.

Direct instantiation is always possible, if this mapping is all that is needed. A Config in read-only and only ConfigParser can change the contents.

Constructor & Destructor Documentation

◆ Config()

Config ( )

◆ ~Config()

virtual ~Config ( )
virtualdefault

Member Function Documentation

◆ checkAllItemsRead()

bool checkAllItemsRead ( std::vector< std::string > & errors) const
virtual

This method is called once the device has read the configuration data it needs.

In this method it should be checked, whether there are entries in this Config (including config objects that are stored in the Config).

Returns
true iff all items in this config have been read

Reimplemented in DeviceConfig, and SlaveConfig.

◆ get()

template<typename T>
T get ( const std::string name)
inlineprotected

◆ get_nothrow()

template<typename T>
std::optional< T > get_nothrow ( const std::string name)
inlineprotected

◆ getBool()

bool getBool ( const std::string name)

Get a Bool typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no Bool value to this key
Returns
the value

◆ getBoolList()

std::list< bool > getBoolList ( const std::string name)

Get a BoolList (std::list<bool>) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no BoolList value to this key
Returns
the value

◆ getFloat()

float getFloat ( const std::string name)

Get a Float typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no Float value to this key
Returns
the value

◆ getFloatList()

std::list< float > getFloatList ( const std::string name)

Get a FloatList (std::list<float>) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no FloatList value to this key
Returns
the value

◆ getInt()

std::int32_t getInt ( const std::string name)

Get a Int (std::int32_t) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no Int value to this key
Returns
the value

◆ getIntList()

std::list< std::int32_t > getIntList ( const std::string name)

Get a IntList (std::list<std::int32_t>) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no IntList value to this key
Returns
the value

◆ getLinearConfig()

types::LinearConfig getLinearConfig ( const std::string name)

Get a LinearConvertedValue typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no LinearConvertedValue to this key
Returns
the value

◆ getMatrix()

template<typename Type, int Rows, int Columns>
Eigen::Matrix< Type, Rows, Columns > getMatrix ( const std::string name)
inline

Get a Matrix by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no matrix to this key with the correct type, width and height
Returns
the value

◆ getModularConvertedValueConfig()

types::ModularConvertedValueConfig getModularConvertedValueConfig ( const std::string & name)

Get a ModularConvertedValue typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no ModularConvertedValue to this key
Returns
the value

◆ getString()

std::string getString ( const std::string name)

Get a String typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no String value to this key
Returns
the value

◆ getUint()

std::uint32_t getUint ( const std::string name)

Get a Uint (std::uint32_t) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no Uint value to this key
Returns
the value

◆ getUintList()

std::list< std::uint32_t > getUintList ( const std::string name)

Get a UIntList (std::list<std::uint32_t>) typed Config attribute by name.

Parameters
namethe name of this Config attribute
Exceptions
ConfigElementNotFoundErrorif there is no UIntList value to this key
Returns
the value

◆ onParsingFinished()

void onParsingFinished ( )
virtual

This method is called when the config is completely read form the HardwareConfig file.

It starts the tracking of which item is read from this Config object.

Reimplemented in DeviceConfig, and SlaveConfig.

◆ print()

void print ( std::stringstream & s,
int indention ) const
virtual

Print this configuration.

Works recursively.

Parameters
sthe stream to append the output to
indentionthe indentation (=level of recursion)

Reimplemented in DeviceConfig, DeviceConfigBase, and SlaveConfig.

◆ set()

template<class T>
void set ( const std::string name,
T value,
ConfigTag tag )
inlineprotected

◆ setBool()

void setBool ( const std::string name,
bool value,
ConfigTag tag )
protected

◆ setBoolList()

void setBoolList ( const std::string name,
std::list< bool > value,
ConfigTag tag )
protected

◆ setFloat()

void setFloat ( const std::string name,
float value,
ConfigTag tag )
protected

◆ setFloatList()

void setFloatList ( const std::string name,
std::list< float > value,
ConfigTag tag )
protected

◆ setInt()

void setInt ( const std::string name,
std::int32_t value,
ConfigTag tag )
protected

◆ setIntList()

void setIntList ( const std::string name,
std::list< std::int32_t > value,
ConfigTag tag )
protected

◆ setLinearConfig()

void setLinearConfig ( const std::string name,
types::LinearConfig && value,
ConfigTag tag )
protected

◆ setModularConvertedValueConfig()

void setModularConvertedValueConfig ( const std::string name,
types::ModularConvertedValueConfig && value,
ConfigTag tag )
protected

◆ setString()

void setString ( const std::string name,
std::string value,
ConfigTag tag )
protected

◆ setUint()

void setUint ( const std::string name,
std::uint32_t value,
ConfigTag tag )
protected

◆ setUintList()

void setUintList ( const std::string name,
std::list< std::uint32_t > value,
ConfigTag tag )
protected

Friends And Related Symbol Documentation

◆ ConfigParser

friend class ConfigParser
friend

◆ ControllerConfig

friend class ControllerConfig
friend

Member Data Documentation

◆ items

std::map<std::string, ConfigItemWithMetadata> items
protected

The documentation for this class was generated from the following files: