fire v0.19.0
Framework for sImulation and Reconstruction of Events
fire::config::Parameters Class Reference

Class encapsulating parameters for configuring a processor. More...

#include <Parameters.h>

Public Member Functions

template<typename T >
void add (const std::string &name, const T &value)
 Add a parameter to the parameter list. More...
 
template<typename T >
void addParameter (const std::string &name, const T &value)
 
bool exists (const std::string &name) const
 Check to see if a parameter exists. More...
 
template<typename T >
const T & get (const std::string &name) const
 Retrieve the parameter of the given name. More...
 
template<typename T >
const T & getParameter (const std::string &name) const
 
template<typename T >
const T & get (const std::string &name, const T &def) const
 Retrieve a parameter with a default specified. More...
 
template<typename T >
const T & getParameter (const std::string &name, const T &def) const
 
std::vector< std::stringkeys () const
 Get a list of the keys available. More...
 

Private Attributes

std::map< std::string, std::any > parameters_
 container holding parameter names and their values
 

Detailed Description

Class encapsulating parameters for configuring a processor.

The storage of arbitrary parameters recursively is done using a map from parameter names (std::string) to parameter values. The values are stored in std::any which allows the user to store any object they wish in a memory-safe environment.

Member Function Documentation

◆ add()

template<typename T >
void fire::config::Parameters::add ( const std::string name,
const T &  value 
)
inline

Add a parameter to the parameter list.

If the parameter already exists in the list, throw an exception.

Parameters
[in]nameName of the parameter.
[in]valueThe value of the parameter.
Template Parameters
Ttype of parameter being added
Exceptions
Exceptionif a parameter by that name already exist in the list.

◆ exists()

bool fire::config::Parameters::exists ( const std::string name) const
inline

Check to see if a parameter exists.

Parameters
[in]namename of parameter to check
Returns
true if parameter exists in configuration set

◆ get() [1/2]

template<typename T >
const T & fire::config::Parameters::get ( const std::string name) const
inline

Retrieve the parameter of the given name.

Exceptions
Exceptionif parameter of the given name isn't found
Exceptionif parameter is found but not of the input type
Template Parameters
Tthe data type to cast the parameter to.
Parameters
[in]namethe name of the parameter value to retrieve.
Returns
The user specified parameter of type T.

◆ get() [2/2]

template<typename T >
const T & fire::config::Parameters::get ( const std::string name,
const T &  def 
) const
inline

Retrieve a parameter with a default specified.

Return the input default if a parameter is not found in map.

Template Parameters
Ttype of parameter to return
Parameters
[in]nameparameter name to retrieve
[in,out]defdefault to use if parameter is not found
Returns
the user parameter of type T

◆ keys()

std::vector< std::string > fire::config::Parameters::keys ( ) const
inline

Get a list of the keys available.

This may be helpful in debugging to make sure the parameters are spelled correctly.

Returns
list of all keys in this map of parameters

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