1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#ifndef MSPROVIDERS_MSREADERS_CONTIGUOUSMSREADER_H
#define MSPROVIDERS_MSREADERS_CONTIGUOUSMSREADER_H
#include "msreader.h"
namespace wsclean {
class ContiguousMS;
class ContiguousMSReader final : public MSReader {
public:
explicit ContiguousMSReader(ContiguousMS* contiguousMS);
virtual ~ContiguousMSReader(){};
size_t RowId() const override { return _currentRowId; }
bool CurrentRowAvailable() override;
void NextInputRow() override;
void ReadMeta(MSProvider::MetaData& metadata) override;
void ReadData(std::complex<float>* buffer) override;
void ReadModel(std::complex<float>* buffer) override;
void ReadWeights(float* buffer) override;
void WriteImagingWeights(const float* buffer) override;
private:
size_t _currentInputRow;
size_t _currentInputTimestep;
double _currentInputTime;
size_t _currentRowId;
bool _isDataRead, _isModelRead, _isWeightRead;
std::unique_ptr<casacore::ArrayColumn<float>> _imagingWeightsColumn;
void readData();
void readWeights();
void readModel();
};
} // namespace wsclean
#endif
|