DP3
BDAResultStep.h
Go to the documentation of this file.
1 // Copyright (C) 2021 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_BDARESULTSTEP_H
5 #define DP3_BDARESULTSTEP_H
6 
7 #include "Step.h"
8 #include "base/BdaBuffer.h"
9 
10 #include <cassert>
11 #include <vector>
12 
13 namespace dp3 {
14 namespace steps {
15 
22 class BDAResultStep : public Step {
23  public:
25  BDAResultStep() : buffers_() {}
26 
27  ~BDAResultStep() override {}
28 
29  common::Fields getRequiredFields() const override { return {}; }
30 
31  common::Fields getProvidedFields() const override { return {}; }
32 
34  bool process(std::unique_ptr<base::BdaBuffer> buffer) override {
35  assert(!getNextStep()); // The result step should be the last step.
36  buffers_.push_back(std::move(buffer));
37  return true;
38  }
39 
41  void finish() override {}
42 
44  void show(std::ostream&) const override {}
45 
47  std::vector<std::unique_ptr<base::BdaBuffer>> Extract() {
48  std::vector<std::unique_ptr<base::BdaBuffer>> result;
49  result.swap(buffers_);
50  return result;
51  }
52 
53  private:
54  std::vector<std::unique_ptr<base::BdaBuffer>> buffers_;
55 };
56 
57 } // namespace steps
58 } // namespace dp3
59 
60 #endif
Buffer holding baseline-dependently averaged (BDA) data.
Class to hold code for virtual base class for Flaggers in DP3.
Definition: Fields.h:16
Definition: BDAResultStep.h:22
common::Fields getProvidedFields() const override
Definition: BDAResultStep.h:31
bool process(std::unique_ptr< base::BdaBuffer > buffer) override
Adds a buffer to the internal queue.
Definition: BDAResultStep.h:34
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: BDAResultStep.h:29
void finish() override
Does nothing.
Definition: BDAResultStep.h:41
std::vector< std::unique_ptr< base::BdaBuffer > > Extract()
Extracts all stored buffers from the result step.
Definition: BDAResultStep.h:47
BDAResultStep()
Creates an empty BDAResultStep.
Definition: BDAResultStep.h:25
void show(std::ostream &) const override
Does nothing.
Definition: BDAResultStep.h:44
~BDAResultStep() override
Definition: BDAResultStep.h:27
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