11#ifndef O2_FRAMEWORK_WORKFLOWSPEC_H_
12#define O2_FRAMEWORK_WORKFLOWSPEC_H_
74 std::function<
size_t()> getNumberOfSubspecs,
75 std::function<
size_t(
size_t)> getSubSpec);
83 std::function<
void(
InputSpec&,
size_t)> amendCallback);
91 std::function<
void(
InputSpec&,
size_t)> amendCallback);
111std::vector<InputSpec>
select(
char const* matcher =
"");
128template <
typename T,
typename... ARGS>
131 if constexpr (
sizeof...(args) == 0) {
134 auto rest =
concat(std::forward<ARGS>(args)...);
136 t.insert(t.end(), rest.begin(), rest.end());
GLuint const GLchar * name
WorkflowSpec concat(T &&t, ARGS &&... args)
WorkflowSpec combine(const char *name, std::vector< DataProcessorSpec > const &specs, bool doIt)
Defining PrimaryVertex explicitly as messageable.
WorkflowSpec parallelPipeline(const WorkflowSpec &specs, size_t nPipelines, std::function< size_t()> getNumberOfSubspecs, std::function< size_t(size_t)> getSubSpec)
WorkflowSpec parallel(DataProcessorSpec original, size_t maxIndex, std::function< void(DataProcessorSpec &, size_t id)> amendCallback)
Inputs mergeInputs(InputSpec original, size_t maxIndex, std::function< void(InputSpec &, size_t)> amendCallback)
std::vector< DataProcessorSpec > WorkflowSpec
DataProcessorSpec timePipeline(DataProcessorSpec original, size_t count)
std::vector< InputSpec > select(char const *matcher="")
std::vector< InputSpec > Inputs
o2::framework::WorkflowSpec WorkflowSpec