16 #ifndef GRPPI_FF_DETAIL_ORDERED_STREAM_FILTER_H
17 #define GRPPI_FF_DETAIL_ORDERED_STREAM_FILTER_H
21 #include <ff/farm.hpp>
27 template <
typename Item,
typename Filter>
34 std::vector<ff::ff_node *> workers_;
35 std::unique_ptr<filter_collector<Item>> p_collector_;
38 template <
typename Item,
typename Filter>
43 ff::ff_ofarm{false, DEF_IN_BUFF_ENTRIES, DEF_OUT_BUFF_ENTRIES, true, num_workers},
44 filter_{std::move(filter)},
48 for(
int i=0;i<num_workers;i++) {
50 std::forward<Filter>(filter)});
52 add_workers(workers_);
53 setCollectorF(p_collector_.get());
Collector node for a filter.
Definition: filter_nodes.h:67
Worker that passes a value to next stage if the predicate is satisfied or the filtered_value constant...
Definition: filter_nodes.h:43
Definition: ordered_stream_filter.h:28
ordered_stream_filter(Filter &&filter, int num_workers)
Definition: ordered_stream_filter.h:39
Definition: callable_traits.h:21