11#ifndef O2_FRAMEWORK_TASK_H_
12#define O2_FRAMEWORK_TASK_H_
49 LOGP(
debug,
"CCDB deserialization invoked");
58template <
typename T,
typename... Args>
62 auto task = std::make_shared<T>(args...);
63 if constexpr (
requires { &T::endOfStream; }) {
66 task->endOfStream(eosContext);
69 if constexpr (
requires { &T::finaliseCCDB; }) {
72 task->finaliseCCDB(matcher, obj);
75 if constexpr (
requires { &T::stop; }) {
92 if constexpr (
requires { &T::endOfStream; }) {
95 task->endOfStream(eosContext);
98 if constexpr (
requires { &T::finaliseCCDB; }) {
101 task->finaliseCCDB(matcher, obj);
104 if constexpr (
requires { &T::stop; }) {
virtual void finaliseCCDB(ConcreteDataMatcher &matcher, void *obj)
virtual void stop()
This is invoked on stop.
virtual void endOfStream(EndOfStreamContext &context)
This is invoked whenever we have an EndOfStream event.
virtual void init(InitContext &context)
virtual void run(ProcessingContext &context)=0
Defining PrimaryVertex explicitly as messageable.
AlgorithmSpec adoptTask(std::shared_ptr< T > task)
AlgorithmSpec adaptFromTask(Args &&... args)
std::function< ProcessCallback(InitContext &)> InitCallback