16 #ifndef GRPPI_PIPELINE_H
17 #define GRPPI_PIPELINE_H
44 template <
typename Execution,
typename Generator,
typename ... Transformers,
45 requires_execution_supported<std::decay_t<Execution>> = 0>
48 Generator && generate_op,
49 Transformers && ... transform_ops)
52 "pipeline pattern is not supported by execution type");
53 ex.pipeline(std::forward<Generator>(generate_op),
54 std::forward<Transformers>(transform_ops)...);
67 template <
typename Transformer,
typename ... Transformers,
68 requires_execution_not_supported<std::decay_t<Transformer>> = 0>
70 Transformer && transform_op,
71 Transformers && ... transform_ops)
73 return pipeline_t<Transformer, Transformers...>(
74 std::forward<Transformer>(transform_op),
75 std::forward<Transformers>(transform_ops)...);
Representation of pipeline pattern. Represents a pipeline with multiple chained transformers.
Definition: pipeline_pattern.h:30
void pipeline(const Execution &ex, Generator &&generate_op, Transformers &&... transform_ops)
Invoke Pipeline pattern on a data stream.
Definition: pipeline.h:46
Definition: callable_traits.h:21
constexpr bool supports_pipeline()
Determines if an execution policy supports the pipeline pattern.
Definition: execution_traits.h:78