casacore
Loading...
Searching...
No Matches
AntennaPairStManColumn.h
Go to the documentation of this file.
1#ifndef CASACORE_STOKES_I_ST_MAN_COLUMN_H_
2#define CASACORE_STOKES_I_ST_MAN_COLUMN_H_
3
4#include <casacore/tables/DataMan/StManColumn.h>
5#include <casacore/tables/Tables/ScalarColumn.h>
6
7#include <casacore/casa/Arrays/Array.h>
8#include <casacore/casa/Arrays/IPosition.h>
9
10#include "AntennaPairFile.h"
11
12#include <optional>
13
14namespace casacore {
15
16class AntennaPairStManColumn final : public StManColumn {
17 public:
23 explicit AntennaPairStManColumn(AntennaPairFile &file, bool is_antenna_2)
24 : StManColumn(DataType::TpInt),
25 file_(file),
26 is_antenna_2_(is_antenna_2) {}
27
32 Bool isWritable() const final { return true; }
33
34 void getInt(rownr_t row, Int *dataPtr) final {
35 if (is_antenna_2_)
36 *dataPtr = file_.ReadAntenna2(row);
37 else
38 *dataPtr = file_.ReadAntenna1(row);
39 }
40
46 void putInt(rownr_t row, const Int *dataPtr) final {
47 if (is_antenna_2_)
48 file_.WriteAntenna2(row, *dataPtr);
49 else
50 file_.WriteAntenna1(row, *dataPtr);
51 }
52
53 private:
55 void operator=(const AntennaPairStManColumn &source) = delete;
56
59};
60} // namespace casacore
61
62#endif
This class is able to store the combination of ANTENNA1 and ANTENNA2 columns in a compressed manner.
int32_t ReadAntenna1(uint64_t row)
void WriteAntenna1(uint64_t row, int32_t antenna1)
void WriteAntenna2(uint64_t row, int32_t antenna2)
int32_t ReadAntenna2(uint64_t row)
void operator=(const AntennaPairStManColumn &source)=delete
Bool isWritable() const final
Whether this column is writable.
void getInt(rownr_t row, Int *dataPtr) final
AntennaPairStManColumn(AntennaPairFile &file, bool is_antenna_2)
Constructor, to be overloaded by subclass.
void putInt(rownr_t row, const Int *dataPtr) final
Write values into a particular row.
AntennaPairStManColumn(const AntennaPairStManColumn &source)=delete
this file contains all the compiler specific defines
Definition mainpage.dox:28
int Int
Definition aipstype.h:48
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44