OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::AbstractParameters< T, DESCRIPTOR > Struct Template Reference

Dynamic access interface for FIELD-valued parameters. More...

#include <fieldParametersD.h>

+ Inheritance diagram for olb::AbstractParameters< T, DESCRIPTOR >:
+ Collaboration diagram for olb::AbstractParameters< T, DESCRIPTOR >:

Public Member Functions

virtual ~AbstractParameters ()=default
 
template<typename FIELD >
bool provides () const
 
template<typename FIELD >
auto get () const
 
template<typename FIELD >
auto getOrFallback (typename ParameterD< T, DESCRIPTOR, FIELD >::data_t &&fallback) const
 
template<typename FIELD >
void set (FieldD< T, DESCRIPTOR, FIELD > &&value)
 
template<typename FIELD >
void set (const FieldD< T, DESCRIPTOR, FIELD > &value)
 

Detailed Description

template<typename T, typename DESCRIPTOR>
struct olb::AbstractParameters< T, DESCRIPTOR >

Dynamic access interface for FIELD-valued parameters.

Definition at line 79 of file fieldParametersD.h.

Constructor & Destructor Documentation

◆ ~AbstractParameters()

template<typename T , typename DESCRIPTOR >
virtual olb::AbstractParameters< T, DESCRIPTOR >::~AbstractParameters ( )
virtualdefault

Member Function Documentation

◆ get()

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
auto olb::AbstractParameters< T, DESCRIPTOR >::get ( ) const
inline

Definition at line 92 of file fieldParametersD.h.

92 {
93 if (auto concrete = dynamic_cast<const ParameterD<T,DESCRIPTOR,FIELD>*>(this)) {
94 return concrete->read();
95 } else {
96 throw std::invalid_argument("FIELD not provided by this parameter set");
97 }
98 };

◆ getOrFallback()

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
auto olb::AbstractParameters< T, DESCRIPTOR >::getOrFallback ( typename ParameterD< T, DESCRIPTOR, FIELD >::data_t && fallback) const
inline

Definition at line 101 of file fieldParametersD.h.

101 {
102 if (auto concrete = dynamic_cast<const ParameterD<T,DESCRIPTOR,FIELD>*>(this)) {
103 return concrete->read();
104 } else {
105 return fallback;
106 }
107 }

◆ provides()

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
bool olb::AbstractParameters< T, DESCRIPTOR >::provides ( ) const
inline

Definition at line 83 of file fieldParametersD.h.

83 {
84 if (auto concrete = dynamic_cast<const ParameterD<T,DESCRIPTOR,FIELD>*>(this)) {
85 return true;
86 } else {
87 return false;
88 }
89 };

◆ set() [1/2]

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
void olb::AbstractParameters< T, DESCRIPTOR >::set ( const FieldD< T, DESCRIPTOR, FIELD > & value)
inline

Definition at line 119 of file fieldParametersD.h.

119 {
120 if (auto concrete = dynamic_cast<ParameterD<T,DESCRIPTOR,FIELD>*>(this)) {
121 return concrete->write(value);
122 } else {
123 throw std::invalid_argument("FIELD not provided by this parameter set");
124 }
125 };

◆ set() [2/2]

template<typename T , typename DESCRIPTOR >
template<typename FIELD >
void olb::AbstractParameters< T, DESCRIPTOR >::set ( FieldD< T, DESCRIPTOR, FIELD > && value)
inline

Definition at line 110 of file fieldParametersD.h.

110 {
111 if (auto concrete = dynamic_cast<ParameterD<T,DESCRIPTOR,FIELD>*>(this)) {
112 return concrete->write(std::forward<decltype(value)>(value));
113 } else {
114 throw std::invalid_argument("FIELD not provided by this parameter set");
115 }
116 };

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