DP3
Combine.h
Go to the documentation of this file.
1 // Copyright (C) 2025 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_STEPS_COMBINE_H_
5 #define DP3_STEPS_COMBINE_H_
6 
7 #include "Step.h"
8 
9 #include <xtensor/containers/xtensor.hpp>
10 
11 #include "common/ParameterSet.h"
12 #include "common/Timer.h"
13 
14 namespace dp3::steps {
15 
18 class Combine final : public Step {
19  public:
22  Combine(const common::ParameterSet&, const std::string& prefix);
23 
26  common::Fields getRequiredFields() const final { return kDataField; }
27 
30  common::Fields getProvidedFields() const final { return kDataField; }
31 
33  bool process(std::unique_ptr<base::DPBuffer>) final;
34 
36  bool process(std::unique_ptr<base::BdaBuffer>) final;
37 
39  void finish() final;
40 
42  void updateInfo(const base::DPInfo&) final;
43 
45  void SetOperation(const std::string& operation);
46 
48  void show(std::ostream&) const final;
49 
51  void showTimings(std::ostream&, double duration) const final;
52 
53  private:
54  enum class Operation { kAdd, kSubtract };
55 
56  std::string name_;
57  common::NSTimer timer_;
58  std::string buffer_name_; //< Buffer that will be added or subtracted
59  Operation operation_; //< Add or subtract
60 };
61 
62 } // namespace dp3::steps
63 
64 #endif
Class to hold code for virtual base class for Flaggers in DP3.
Definition: Fields.h:16
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
DP3 step to combine two named buffers This class is a DP3 step to combine to named buffers.
Definition: Combine.h:18
void finish() final
Finish the processing of this step and subsequent steps.
void show(std::ostream &) const final
Show the step parameters.
bool process(std::unique_ptr< base::DPBuffer >) final
Process the data.
bool process(std::unique_ptr< base::BdaBuffer >) final
TODO: Process BDA data.
void showTimings(std::ostream &, double duration) const final
Show the timings.
void updateInfo(const base::DPInfo &) final
Update the general info.
void SetOperation(const std::string &operation)
Set operation.
common::Fields getProvidedFields() const final
Definition: Combine.h:30
common::Fields getRequiredFields() const final
Definition: Combine.h:26
Combine(const common::ParameterSet &, const std::string &prefix)
Abstract base class for a DP3 step.
Definition: Step.h:52
static constexpr dp3::common::Fields kDataField
Definition: Step.h:60
Definition: AntennaFlagger.h:17