11#ifndef O2_FRAMEWORK_CONFIGURABLE_H_
12#define O2_FRAMEWORK_CONFIGURABLE_H_
24template <
typename T, ConfigParamKind K>
37template <
typename T, ConfigParamKind K>
53template <
typename T, ConfigParamKind K>
71template <
typename T, ConfigParamKind K = ConfigParamKind::kGeneric,
typename IP = ConfigurablePolicyConst<T, K>>
83template <
typename T, ConfigParamKind K = ConfigParamKind::kGeneric>
88 requires std::same_as<std::string,
decltype(t.name)>;
89 requires std::same_as<std::string,
decltype(t.help)>;
90 requires std::same_as<typename std::decay_t<T>::type,
decltype(t.value)>;
102template <
typename T,
typename... As>
115#define PROCESS_SWITCH(_Class_, _Name_, _Help_, _Default_) \
116 decltype(o2::framework::ProcessConfigurable{&_Class_ ::_Name_, #_Name_, _Default_, _Help_}) do##_Name_ = o2::framework::ProcessConfigurable{&_Class_ ::_Name_, #_Name_, _Default_, _Help_};
117#define PROCESS_SWITCH_FULL(_Class_, _Method_, _Name_, _Help_, _Default_) \
118 decltype(o2::framework::ProcessConfigurable{&_Class_ ::_Method_, #_Name_, _Default_, _Help_}) do##_Name_ = o2::framework::ProcessConfigurable{&_Class_ ::_Method_, #_Name_, _Default_, _Help_};
120template <
typename T, ConfigParamKind K,
typename IP>
std::vector< std::shared_ptr< gandiva::Expression > > expressions
GLsizei const GLchar *const * string
GLuint const GLchar * name
GLsizei const GLfloat * value
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
Defining PrimaryVertex explicitly as messageable.
std::ostream & operator<<(std::ostream &s, ChannelType const &type)
Stream operators so that we can use ChannelType with Boost.Test.
Defining DataPointCompositeObject explicitly as copiable.
ConfigurableBase(std::string const &name, T &&defaultValue, std::string const &help)
static constexpr ConfigParamKind kind
T const * operator->() const
ConfigurablePolicyConst(std::string const &name, T &&defaultValue, std::string const &help)
ConfigurablePolicyMutable(std::string const &name, T &&defaultValue, std::string const &help)
Configurable(std::string const &name, T &&defaultValue, std::string const &help)
ProcessConfigurable(void(T::*process_)(As...), std::string const &name_, bool &&value_, std::string const &help_)
A placeholder node for simple type configurable.