DP3
MultiResultStep.h
Go to the documentation of this file.
1 // Copyright (C) 2022 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_STEPS_MULTIRESULTSTEP_H_
5 #define DP3_STEPS_MULTIRESULTSTEP_H_
6 
7 #include "Step.h"
8 
9 namespace dp3 {
10 namespace steps {
11 
16 class MultiResultStep : public Step {
17  public:
20  explicit MultiResultStep(unsigned int size);
21 
22  ~MultiResultStep() override {}
23 
24  common::Fields getRequiredFields() const override { return {}; }
25 
26  common::Fields getProvidedFields() const override { return {}; }
27 
29  bool process(std::unique_ptr<base::DPBuffer> buffer) override;
30 
32  void finish() override { getNextStep()->finish(); }
33 
36  void show(std::ostream&) const override{};
37 
39  const std::vector<std::unique_ptr<base::DPBuffer>>& get() const {
40  return buffers_;
41  }
42  std::vector<std::unique_ptr<base::DPBuffer>>& get() { return buffers_; }
43 
45  size_t size() const { return size_; }
46 
48  void clear() { size_ = 0; }
49 
50  private:
51  std::vector<std::unique_ptr<base::DPBuffer>> buffers_;
52  size_t size_;
53 };
54 
55 } // namespace steps
56 } // namespace dp3
57 
58 #endif
Class to hold code for virtual base class for Flaggers in DP3.
Definition: Fields.h:16
This class defines step in the DP3 pipeline that keeps the result to make it possible to get the resu...
Definition: MultiResultStep.h:16
common::Fields getProvidedFields() const override
Definition: MultiResultStep.h:26
bool process(std::unique_ptr< base::DPBuffer > buffer) override
Add the buffer to the vector of kept buffers.
void clear()
Clear the buffers.
Definition: MultiResultStep.h:48
MultiResultStep(unsigned int size)
~MultiResultStep() override
Definition: MultiResultStep.h:22
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: MultiResultStep.h:24
const std::vector< std::unique_ptr< base::DPBuffer > > & get() const
Get the result.
Definition: MultiResultStep.h:39
void show(std::ostream &) const override
Definition: MultiResultStep.h:36
void finish() override
Finish does not do anything.
Definition: MultiResultStep.h:32
size_t size() const
Get the size of the result.
Definition: MultiResultStep.h:45
std::vector< std::unique_ptr< base::DPBuffer > > & get()
Definition: MultiResultStep.h:42
Abstract base class for a DP3 step.
Definition: Step.h:52
const Step::ShPtr & getNextStep() const
Get the next step.
Definition: Step.h:136
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53