Subordination
A framework for distributed programming
parallel_pipeline.hh
1 #ifndef SUBORDINATION_PPL_PARALLEL_PIPELINE_HH
2 #define SUBORDINATION_PPL_PARALLEL_PIPELINE_HH
3 
4 #include <subordination/ppl/basic_pipeline.hh>
5 
6 namespace sbn {
7 
8  template<class T>
9  class parallel_pipeline: public basic_pipeline<T> {
10 
11  public:
13  using typename base_pipeline::kernel_type;
14  using typename base_pipeline::lock_type;
15  using typename base_pipeline::traits_type;
16 
17  inline
18  parallel_pipeline(parallel_pipeline&& rhs) noexcept:
19  base_pipeline(std::move(rhs))
20  {}
21 
22  inline
23  parallel_pipeline() noexcept:
25  {}
26 
27  inline explicit
28  parallel_pipeline(unsigned concurrency) noexcept:
29  base_pipeline(concurrency)
30  {}
31 
32  parallel_pipeline(const parallel_pipeline&) = delete;
33  parallel_pipeline& operator=(const parallel_pipeline&) = delete;
34  ~parallel_pipeline() = default;
35 
36  protected:
37 
38  void
39  do_run() override;
40 
41  };
42 
43 }
44 
45 #endif // vim:filetype=cpp
Definition: basic_pipeline.hh:40
Container traits for queue-like containers.
Definition: container_traits.hh:65
Definition: parallel_pipeline.hh:9