Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
astra_ros::Parameter< T > Class Template Reference

A "live" value that can be changed at runtime. Changes are broadcast to a listener. More...

#include <Parameter.hpp>

Public Types

typedef ParameterImpl< T >::OnChange OnChange
 
typedef ParameterImpl< T >::ValueType ValueType
 

Public Member Functions

template<typename F , typename... Args>
void bindOnChangeHandler (F &&f, Args &&...args)
 
const T & get () const
 
const boost::optional< OnChange > & getOnChangeHandler () const
 
const T & operator* () const
 
 Parameter ()
 
 Parameter (const T &value)
 
bool set (const T &value)
 
void setOnChangeHandler (const boost::optional< OnChange > &on_change)
 

Static Public Member Functions

template<typename F , typename... Args>
static OnChange bind (F &&f, Args &&...args)
 

Private Attributes

std::shared_ptr< ParameterImpl< T > > impl_
 

Detailed Description

template<typename T>
class astra_ros::Parameter< T >

A "live" value that can be changed at runtime. Changes are broadcast to a listener.

Parameters can be copied cheaply. They are backed by ParameterImpl, which implements the actual logic.

Definition at line 85 of file Parameter.hpp.

Member Typedef Documentation

◆ OnChange

template<typename T >
typedef ParameterImpl<T>::OnChange astra_ros::Parameter< T >::OnChange

Definition at line 89 of file Parameter.hpp.

◆ ValueType

template<typename T >
typedef ParameterImpl<T>::ValueType astra_ros::Parameter< T >::ValueType

Definition at line 88 of file Parameter.hpp.

Constructor & Destructor Documentation

◆ Parameter() [1/2]

template<typename T >
astra_ros::Parameter< T >::Parameter ( )
inline

Create a Parameter with the value T() (the default value for the type T)

Create a Parameter with a given value

Definition at line 95 of file Parameter.hpp.

◆ Parameter() [2/2]

template<typename T >
astra_ros::Parameter< T >::Parameter ( const T &  value)
inline

Definition at line 104 of file Parameter.hpp.

Member Function Documentation

◆ bind()

template<typename T >
template<typename F , typename... Args>
static OnChange astra_ros::Parameter< T >::bind ( F &&  f,
Args &&...  args 
)
inlinestatic

Helper method used by bindOnChangeHandler. Wraps std::bind in an OnChange.

Definition at line 170 of file Parameter.hpp.

◆ bindOnChangeHandler()

template<typename T >
template<typename F , typename... Args>
astra_ros::Parameter< T >::bindOnChangeHandler ( F &&  f,
Args &&...  args 
)
inline

Convience method for setting the OnChange handler with semantics equivalent to std::bind.

Definition at line 151 of file Parameter.hpp.

◆ get()

template<typename T >
astra_ros::Parameter< T >::get ( ) const
inline

Retrieve the value of the Parameter.

Definition at line 122 of file Parameter.hpp.

◆ getOnChangeHandler()

template<typename T >
astra_ros::Parameter< T >::getOnChangeHandler ( ) const
inline

Retrieve the current onChange handler

Returns
boost::none if not set, otherwise the onChange handler

Definition at line 161 of file Parameter.hpp.

◆ operator*()

template<typename T >
const T& astra_ros::Parameter< T >::operator* ( ) const
inline

Definition at line 131 of file Parameter.hpp.

◆ set()

template<typename T >
astra_ros::Parameter< T >::set ( const T &  value)
inline

Update the value of the Parameter. Changes are broadcast to the OnChange listener.

Definition at line 113 of file Parameter.hpp.

◆ setOnChangeHandler()

template<typename T >
astra_ros::Parameter< T >::setOnChangeHandler ( const boost::optional< OnChange > &  on_change)
inline

Set the OnChange handler that is called when values change. This shouldn't be used by the Parameter "client".

Definition at line 141 of file Parameter.hpp.

Member Data Documentation

◆ impl_

template<typename T >
std::shared_ptr<ParameterImpl<T> > astra_ros::Parameter< T >::impl_
private

Definition at line 176 of file Parameter.hpp.


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


astra_ros
Author(s): Braden McDorman
autogenerated on Wed Mar 2 2022 00:53:06