11#ifndef O2_FRAMEWORK_COMPLETIONPOLICYHELPERS_H_
12#define O2_FRAMEWORK_COMPLETIONPOLICYHELPERS_H_
80 template <
typename T,
typename U>
85 using return_type =
typename std::conditional<std::is_pointer<T>::value, T,
typename std::add_pointer<T>::type>
::type;
86 return o2::header::get<return_type>(input.header);
GLuint const GLchar * name
GLint GLint GLsizei GLint GLenum GLenum type
Defining PrimaryVertex explicitly as messageable.
Helper class which holds commonly used policies.
static CompletionPolicy processWhenAny(const char *name, CompletionPolicy::Matcher matcher)
static CompletionPolicy consumeWhenAny(CompletionPolicy::Matcher matcher=[](auto const &) -> bool { return true;})
Default matcher applies for all devices.
static CompletionPolicy consumeWhenAllOrdered(const char *name, CompletionPolicy::Matcher matcher)
as consumeWhenAll, but ensures that records are processed with incremental timeSlice (DataHeader::sta...
static CompletionPolicy defineByName(std::string const &name, CompletionPolicy::CompletionOp op)
static CompletionPolicy consumeExistingWhenAny(const char *name, CompletionPolicy::Matcher matcher)
static CompletionPolicy consumeWhenAll(const char *name, CompletionPolicy::Matcher matcher)
Default Completion policy. When all the parts of a record have arrived, consume them.
static CompletionPolicy consumeWhenAnyWithAllConditions(const char *name, CompletionPolicy::Matcher matcher)
When any of the parts of the record have been received, consume them.
static CompletionPolicy consumeWhenAll(CompletionPolicy::Matcher matcher=[](auto const &) -> bool { return true;})
Default matcher applies for all devices.
static CompletionPolicy consumeWhenAnyWithAllConditions(CompletionPolicy::Matcher matcher=[](auto const &) -> bool { return true;})
Default matcher applies for all devices.
static CompletionPolicy defineByNameOrigin(std::string const &name, std::string const &origin, CompletionPolicy::CompletionOp op)
static CompletionPolicy consumeWhenAny(const char *name, CompletionPolicy::Matcher matcher)
When any of the parts of the record have been received, consume them.
static CompletionPolicy consumeWhenAllOrdered(CompletionPolicy::Matcher matcher=[](auto const &) -> bool { return true;})
Default matcher applies for all devices.
static CompletionPolicy processWhenAny(CompletionPolicy::Matcher matcher=[](auto const &) -> bool { return true;})
Default matcher applies for all devices.
static auto getHeader(U const &input)
Get a specific header from the input.
CompletionOp
Action to take with the InputRecord:
std::function< bool(DeviceSpec const &device)> Matcher