A parameter provider which dispatches the retrieval of the parameter value to registered handlers which are selected based on the name, size, and optional array index of the parameter.
Definition at line 72 of file TypeBasedParameterProvider.hpp.
Public Member Functions | |
bool | get (ParameterProvider const *const parentProvider, dw::core::StringView const &key, const std::type_info &semanticTypeInfo, const std::type_info &dataTypeInfo, void *out) const override |
bool | get (ParameterProvider const *const parentProvider, dw::core::StringView const &key, size_t const index, const std::type_info &semanticTypeInfo, const std::type_info &dataTypeInfo, void *out) const override |
TypeBasedParameterProvider ()=default | |
Default constructor. More... | |
~TypeBasedParameterProvider () override=default | |
Destructor. More... | |
Public Member Functions inherited from dw::framework::ParameterProvider | |
template<typename S , typename T , size_t N, std::enable_if_t< std::is_same< T, dw::core::FixedString< N > >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, dw::core::FixedString< N > *out) const |
template<typename S , typename T , size_t N, std::enable_if_t< std::is_same< T, dw::core::FixedString< N > >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, size_t const index, dw::core::FixedString< N > *out) const |
template<typename T , typename std::enable_if_t< !std::is_array< T >::value &&!std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename S , typename T , std::enable_if_t<!std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename S , typename T , std::enable_if_t< std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename T , typename std::enable_if_t< !std::is_array< T >::value &&!std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, std::vector< T > *out) const |
template<typename T , typename std::enable_if_t< !std::is_array< T >::value &&!std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
template<typename T , typename std::enable_if_t< std::is_array< T >::value &&std::rank< T >::value==1 &&!std::is_enum< std::remove_extent_t< T > >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
template<typename T , typename std::enable_if_t< std::is_array< T >::value &&std::rank< T >::value==1 &&std::is_same< T, char8_t >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
template<typename T , typename std::enable_if_t< std::is_array< T >::value &&std::rank< T >::value==2 &&!std::is_enum< std::remove_all_extents_t< T > >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
template<typename S , typename T , std::enable_if_t<!std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
template<typename S , typename T , std::enable_if_t< std::is_enum< T >::value > * = nullptr> | |
bool | get (dw::core::StringView const &key, T *out) const |
virtual bool | get (ParameterProvider const *const parentProvider, dw::core::StringView const &key, const std::type_info &semanticTypeInfo, const std::type_info &dataTypeInfo, void *out) const =0 |
virtual bool | get (ParameterProvider const *const parentProvider, dw::core::StringView const &key, size_t const index, const std::type_info &semanticTypeInfo, const std::type_info &dataTypeInfo, void *out) const =0 |
template<typename T > | |
bool | getOptional (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename S , typename T > | |
bool | getOptional (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename T > | |
bool | getOptional (dw::core::StringView const &key, T *out) const |
template<typename S , typename T > | |
bool | getOptional (dw::core::StringView const &key, T *out) const |
template<typename T > | |
void | getRequired (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename S , typename T > | |
void | getRequired (dw::core::StringView const &key, size_t const index, T *out) const |
template<typename T > | |
void | getRequired (dw::core::StringView const &key, T *out) const |
template<typename S , typename T > | |
void | getRequired (dw::core::StringView const &key, T *out) const |
ParameterProvider ()=default | |
Default constructor. More... | |
virtual | ~ParameterProvider ()=default |
Destructor. More... | |
Protected Member Functions | |
TypeBasedParameterProvider & | operator= (TypeBasedParameterProvider &&) &=default |
Move assignment operator. More... | |
TypeBasedParameterProvider & | operator= (TypeBasedParameterProvider const &) &=default |
Copy assignment operator. More... | |
TypeBasedParameterProvider (TypeBasedParameterProvider &&)=default | |
Move constructor. More... | |
TypeBasedParameterProvider (TypeBasedParameterProvider const &)=default | |
Copy constructor. More... | |
Protected Member Functions inherited from dw::framework::ParameterProvider | |
ParameterProvider & | operator= (ParameterProvider &&) &=default |
Move assignment operator. More... | |
ParameterProvider & | operator= (ParameterProvider const &) &=default |
Copy assignment operator. More... | |
ParameterProvider (ParameterProvider &&)=default | |
Move constructor. More... | |
ParameterProvider (ParameterProvider const &)=default | |
Copy constructor. More... | |
Static Protected Member Functions | |
static bool | isPairEqual (const std::pair< const std::type_info &, const std::type_info & > &lhs, const std::pair< const std::type_info &, const std::type_info & > &rhs) |
Handler functions retrieving parameters by name. | |
Function signature of this handler type. | |
using | ParameterByNameHandler = std::function< bool(dw::core::StringView const &, void *)> |
void | registerByNameHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo, ParameterByNameHandler &&handler) |
Register the handler function. More... | |
ParameterByNameHandler const * | getByNameHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo) const |
Get the handler function. More... | |
template<typename T > | |
void | registerByNameHandler (ParameterByNameHandler &&handler) |
Register the handler function for the template type T. More... | |
template<typename T , typename S > | |
void | registerByNameHandler (ParameterByNameHandler &&handler) |
Register the handler function for the template type T and the semantic template type S. More... | |
Handler functions retrieving parameters by data type, name and index. | |
Function signature of this handler type. | |
using | ParameterByNameAndIndexHandler = std::function< bool(dw::core::StringView const &, size_t, void *)> |
void | registerByNameAndIndexHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo, ParameterByNameAndIndexHandler &&handler) |
Register the handler function. More... | |
ParameterByNameAndIndexHandler const * | getByNameAndIndexHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo) const |
Get the handler function. More... | |
template<typename T > | |
void | registerByNameAndIndexHandler (ParameterByNameAndIndexHandler &&handler) |
Register the handler function for the template type T. More... | |
template<typename T , typename S > | |
void | registerByNameAndIndexHandler (ParameterByNameAndIndexHandler &&handler) |
Register the handler function for the template type T and the semantic template type S. More... | |
Handler functions retrieving parameters by data type and index. | |
Function signature of this handler type. | |
using | ParameterByIndexHandler = std::function< bool(size_t, void *)> |
void | registerByIndexHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo, ParameterByIndexHandler &&handler) |
Register the handler function. More... | |
ParameterByIndexHandler const * | getByIndexHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo) const |
Get the handler function. More... | |
template<typename T > | |
void | registerByIndexHandler (ParameterByIndexHandler &&handler) |
Register the handler function for the template type T. More... | |
template<typename T , typename S > | |
void | registerByIndexHandler (ParameterByIndexHandler &&handler) |
Register the handler function for the template type T and the semantic template type S. More... | |
Handler functions retrieving parameters by data type. | |
Function signature of this handler type. | |
using | ParameterByTypeHandler = std::function< bool(void *)> |
void | registerByTypeHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo, ParameterByTypeHandler &&handler) |
Register the handler function. More... | |
ParameterByTypeHandler const * | getByTypeHandler (const std::type_info &dataTypeInfo, const std::type_info &semanticTypeInfo) const |
Get the handler function. More... | |
template<typename T > | |
void | registerByTypeHandler (ParameterByTypeHandler &&handler) |
Register the handler function for the template type T. More... | |
template<typename T , typename S > | |
void | registerByTypeHandler (ParameterByTypeHandler &&handler) |
Register the handler function for the template type T and the semantic template type S. More... | |
Parameter providers selected by data type. | |
Register the passed parameter provider for the template type T. | |
void | registerProvider (const std::type_info &typeInfo, const ParameterProvider *provider) |
Register the parameter provider. More... | |
const ParameterProvider * | getProvider (const std::type_info &typeInfo) const |
Get the parameter provider. More... | |
template<typename T > | |
void | registerProvider (const ParameterProvider *provider) |
template<typename T > | |
const ParameterProvider * | getProvider () const |
Get the provider for the template type T. More... | |
Parameter provider children selected by data type. | |
Register the passed parameter provider child for the template type T. | |
const ITypeBasedParameterProviderChild * | getProviderChild (const std::type_info &typeInfo) const |
Get the parameter provider child. More... | |
template<typename T > | |
void | registerProviderChild (const T &providerChild) |
template<typename T > | |
const ITypeBasedParameterProviderChild * | getProviderChild () const |
Get the provider child for the template type T. More... | |
void | registerProviderChild (const std::type_info &typeInfo, const ITypeBasedParameterProviderChild &providerChild) |
Register the parameter provider child . More... | |
using dw::framework::TypeBasedParameterProvider::ParameterByIndexHandler = std::function<bool(size_t, void*)> |
Definition at line 240 of file TypeBasedParameterProvider.hpp.
using dw::framework::TypeBasedParameterProvider::ParameterByNameAndIndexHandler = std::function<bool(dw::core::StringView const&, size_t, void*)> |
Definition at line 206 of file TypeBasedParameterProvider.hpp.
using dw::framework::TypeBasedParameterProvider::ParameterByNameHandler = std::function<bool(dw::core::StringView const&, void*)> |
Definition at line 172 of file TypeBasedParameterProvider.hpp.
using dw::framework::TypeBasedParameterProvider::ParameterByTypeHandler = std::function<bool(void*)> |
Definition at line 274 of file TypeBasedParameterProvider.hpp.
|
protecteddefault |
Copy constructor.
|
protecteddefault |
Move constructor.
|
default |
Default constructor.
|
overridedefault |
Destructor.
|
overridevirtual |
Implements dw::framework::ParameterProvider.
|
overridevirtual |
Implements dw::framework::ParameterProvider.
|
protected |
Get the handler function.
|
protected |
Get the handler function.
|
protected |
Get the handler function.
|
protected |
Get the handler function.
|
inline |
Get the provider for the template type T.
Definition at line 118 of file TypeBasedParameterProvider.hpp.
References getProvider().
Referenced by getProvider().
|
protected |
Get the parameter provider.
|
inline |
Get the provider child for the template type T.
Definition at line 149 of file TypeBasedParameterProvider.hpp.
References getProviderChild().
Referenced by getProviderChild().
|
protected |
Get the parameter provider child.
|
staticprotected |
Check if a two pairs of type infos is equal.
Due to a limitation/bug on QNX, two type_info for the same type might not compare equal to each other. This function is a WAR and falls back to a string comparison of .name().
|
protecteddefault |
Move assignment operator.
|
protecteddefault |
Copy assignment operator.
|
protected |
Register the handler function.
|
inline |
Register the handler function for the template type T.
Definition at line 244 of file TypeBasedParameterProvider.hpp.
Referenced by registerByIndexHandler().
|
inline |
Register the handler function for the template type T and the semantic template type S.
Definition at line 251 of file TypeBasedParameterProvider.hpp.
References registerByIndexHandler().
|
protected |
Register the handler function.
|
inline |
Register the handler function for the template type T.
Definition at line 210 of file TypeBasedParameterProvider.hpp.
Referenced by registerByNameAndIndexHandler().
|
inline |
Register the handler function for the template type T and the semantic template type S.
Definition at line 217 of file TypeBasedParameterProvider.hpp.
References registerByNameAndIndexHandler().
|
protected |
Register the handler function.
|
inline |
Register the handler function for the template type T.
Definition at line 176 of file TypeBasedParameterProvider.hpp.
Referenced by registerByNameHandler().
|
inline |
Register the handler function for the template type T and the semantic template type S.
Definition at line 183 of file TypeBasedParameterProvider.hpp.
References registerByNameHandler().
|
protected |
Register the handler function.
|
inline |
Register the handler function for the template type T.
Definition at line 278 of file TypeBasedParameterProvider.hpp.
Referenced by registerByTypeHandler().
|
inline |
Register the handler function for the template type T and the semantic template type S.
Definition at line 285 of file TypeBasedParameterProvider.hpp.
References registerByTypeHandler().
|
inline |
Definition at line 111 of file TypeBasedParameterProvider.hpp.
References registerProvider().
Referenced by registerProvider().
|
protected |
Register the parameter provider.
void dw::framework::TypeBasedParameterProvider::registerProviderChild | ( | const std::type_info & | typeInfo, |
const ITypeBasedParameterProviderChild & | providerChild | ||
) |
Register the parameter provider child .
|
inline |
Definition at line 142 of file TypeBasedParameterProvider.hpp.
References registerProviderChild().
Referenced by registerProviderChild().