20 #ifndef __TPIE_PIPELINING_MERGE_H__
21 #define __TPIE_PIPELINING_MERGE_H__
23 #include <tpie/pipelining/pipe_base.h>
24 #include <tpie/pipelining/factory_helpers.h>
25 #include <tpie/pipelining/node.h>
29 namespace pipelining {
40 template <
typename fact_t>
43 typedef typename fact_t::constructed_type pull_t;
45 template <
typename dest_t>
50 type(dest_t dest, fact_t fact) : dest(std::move(dest)), with(fact.construct()) {
55 inline void push(
const item_type & item) {
57 dest.push(with.pull());
71 template <
typename pull_t>
74 return {std::move(with.factory)};
void add_pull_source(const node_token &dest)
Called by implementers to declare a pull source.
Merge a pull pipeline into a push pipeline.
void add_push_destination(const node_token &dest)
Called by implementers to declare a push destination.
Class to deduce the item_type of a node of type T.
pipe_middle< factory< bits::merge_t< pull_t >::template type, pull_t > > merge(pullpipe_begin< pull_t > with)
A node that merges a pull pipeline into a push pipeline.
A pipe_middle class pushes input down the pipeline.