MSFeedColumns.h

Classes

ROMSFeedColumns -- A class to provide easy read-only access to MSFeed columns (full description)
MSFeedColumns -- A class to provide easy read-write access to MSFeed columns (full description)

class ROMSFeedColumns

Interface

Public Members
ROMSFeedColumns(const MSFeed& msFeed)
~ROMSFeedColumns()
const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Int>& beamId() const
const ROArrayColumn<Double>& beamOffset() const
const ROArrayQuantColumn<Double>& beamOffsetQuant() const
const ROArrayMeasColumn<MDirection>& beamOffsetMeas() const
const ROScalarColumn<Int>& feedId() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<Int>& numReceptors() const
const ROArrayColumn<Complex>& polResponse() const
const ROArrayColumn<String>& polarizationType() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROArrayColumn<Double>& receptorAngle() const
const ROArrayQuantColumn<Double>& receptorAngleQuant() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& focusLength() const
const ROScalarQuantColumn<Double>& focusLengthQuant() const
const ROScalarColumn<Int>& phasedFeedId() const
uInt nrow() const
Protected Members
ROMSFeedColumns()
void attach(const MSFeed& msFeed)
Private Members
ROMSFeedColumns(const ROMSFeedColumns&)
ROMSFeedColumns& operator=(const ROMSFeedColumns&)
void attachOptionalCols(const MSFeed& msFeed)

Description

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1997/02/01

Prerequisite

Etymology

ROMSFeedColumns stands for Read-Only MeasurementSet Feed Table columns.

Synopsis

This class provides read-only access to the columns in the MSFeed Table. It does the declaration of all the Scalar and ArrayColumns with the correct types, so the application programmer doesn't have to worry about getting those right. There is an access function for every predefined column. Access to non-predefined columns will still have to be done with explicit declarations. See ROMSColumns for an example.

Motivation

See MSColumns for the motivation.

Member Description

ROMSFeedColumns(const MSFeed& msFeed)

Create a columns object that accesses the data in the specified Table

~ROMSFeedColumns()

The destructor does nothing special

const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Int>& beamId() const
const ROArrayColumn<Double>& beamOffset() const
const ROArrayQuantColumn<Double>& beamOffsetQuant() const
const ROArrayMeasColumn<MDirection>& beamOffsetMeas() const
const ROScalarColumn<Int>& feedId() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<Int>& numReceptors() const
const ROArrayColumn<Complex>& polResponse() const
const ROArrayColumn<String>& polarizationType() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROArrayColumn<Double>& receptorAngle() const
const ROArrayQuantColumn<Double>& receptorAngleQuant() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const

Access to required columns

const ROScalarColumn<Double>& focusLength() const
const ROScalarQuantColumn<Double>& focusLengthQuant() const
const ROScalarColumn<Int>& phasedFeedId() const

Access to optional columns

uInt nrow() const

Convenience function that returns the number of rows in any of the columns

ROMSFeedColumns()

void attach(const MSFeed& msFeed)

ROMSFeedColumns(const ROMSFeedColumns&)

ROMSFeedColumns& operator=(const ROMSFeedColumns&)

void attachOptionalCols(const MSFeed& msFeed)


class MSFeedColumns: public ROMSFeedColumns

Interface

Public Members
MSFeedColumns(MSFeed& msFeed)
~MSFeedColumns()
ScalarColumn<Int>& antennaId()
ScalarColumn<Int>& beamId()
ArrayColumn<Double>& beamOffset()
ArrayQuantColumn<Double>& beamOffsetQuant()
ArrayMeasColumn<MDirection>& beamOffsetMeas()
ScalarColumn<Int>& feedId()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<Int>& numReceptors()
ArrayColumn<Complex>& polResponse()
ArrayColumn<String>& polarizationType()
ArrayColumn<Double>& position()
ArrayQuantColumn<Double>& positionQuant()
ScalarMeasColumn<MPosition>& positionMeas()
ArrayColumn<Double>& receptorAngle()
ArrayQuantColumn<Double>& receptorAngleQuant()
ScalarColumn<Int>& spectralWindowId()
ScalarColumn<Double>& time()
ScalarQuantColumn<Double>& timeQuant()
ScalarMeasColumn<MEpoch>& timeMeas()
ScalarColumn<Double>& focusLength()
ScalarQuantColumn<Double>& focusLengthQuant()
ScalarColumn<Int>& phasedFeedId()
const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Int>& beamId() const
const ROArrayColumn<Double>& beamOffset() const
const ROArrayQuantColumn<Double>& beamOffsetQuant() const
const ROArrayMeasColumn<MDirection>& beamOffsetMeas() const
const ROScalarColumn<Int>& feedId() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<Int>& numReceptors() const
const ROArrayColumn<Complex>& polResponse() const
const ROArrayColumn<String>& polarizationType() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROArrayColumn<Double>& receptorAngle() const
const ROArrayQuantColumn<Double>& receptorAngleQuant() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROScalarColumn<Double>& focusLength() const
const ROScalarQuantColumn<Double>& focusLengthQuant() const
const ROScalarColumn<Int>& phasedFeedId() const
void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)
void setDirectionRef(MDirection::Types ref)
void setPositionRef(MPosition::Types ref)
Protected Members
MSFeedColumns()
void attach(MSFeed& msFeed)
Private Members
MSFeedColumns(const MSFeedColumns&)
MSFeedColumns& operator=(const MSFeedColumns&)
void attachOptionalCols(MSFeed& msFeed)

Description

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1997/02/01

Prerequisite

Etymology

MSFeedColumns stands for MeasurementSet Feed Table columns.

Synopsis

This class provides access to the columns in the MSFeed Table, it does the declaration of all the Scalar and ArrayColumns with the correct types, so the application programmer doesn't have to worry about getting those right. There is an access function for every predefined column. Access to non-predefined columns will still have to be done with explicit declarations. See MSColumns for an example.

Motivation

See MSColumns for the motivation.

Member Description

MSFeedColumns(MSFeed& msFeed)

Create a columns object that accesses the data in the specified Table

~MSFeedColumns()

The desctructor does nothing special

ScalarColumn<Int>& antennaId()
ScalarColumn<Int>& beamId()
ArrayColumn<Double>& beamOffset()
ArrayQuantColumn<Double>& beamOffsetQuant()
ArrayMeasColumn<MDirection>& beamOffsetMeas()
ScalarColumn<Int>& feedId()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<Int>& numReceptors()
ArrayColumn<Complex>& polResponse()
ArrayColumn<String>& polarizationType()
ArrayColumn<Double>& position()
ArrayQuantColumn<Double>& positionQuant()
ScalarMeasColumn<MPosition>& positionMeas()
ArrayColumn<Double>& receptorAngle()
ArrayQuantColumn<Double>& receptorAngleQuant()
ScalarColumn<Int>& spectralWindowId()
ScalarColumn<Double>& time()
ScalarQuantColumn<Double>& timeQuant()
ScalarMeasColumn<MEpoch>& timeMeas()

Read-write access to required columns

ScalarColumn<Double>& focusLength()
ScalarQuantColumn<Double>& focusLengthQuant()
ScalarColumn<Int>& phasedFeedId()

Read-write access to optional columns

const ROScalarColumn<Int>& antennaId() const
const ROScalarColumn<Int>& beamId() const
const ROArrayColumn<Double>& beamOffset() const
const ROArrayQuantColumn<Double>& beamOffsetQuant() const
const ROArrayMeasColumn<MDirection>& beamOffsetMeas() const
const ROScalarColumn<Int>& feedId() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<Int>& numReceptors() const
const ROArrayColumn<Complex>& polResponse() const
const ROArrayColumn<String>& polarizationType() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROArrayColumn<Double>& receptorAngle() const
const ROArrayQuantColumn<Double>& receptorAngleQuant() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const

Read-only access to required columns

const ROScalarColumn<Double>& focusLength() const
const ROScalarQuantColumn<Double>& focusLengthQuant() const
const ROScalarColumn<Int>& phasedFeedId() const

Read-only access to optional columns

void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)

set the epoch type for the TIME column.

Tip In principle this function can only be used if the table is empty, otherwise already written values may thereafter have an incorrect reference, offset, or unit. However, it is possible that part of the table gets written before these values are known. In that case the reference, offset, or units can be set by using a False tableMustBeEmpty argument.

void setDirectionRef(MDirection::Types ref)

set the direction type for the BEAM_OFFSET column. This can only be done when the table has no rows. Trying to do so at other times will throw an exception.

void setPositionRef(MPosition::Types ref)

set the position type for the POSITION column. This can only be done when the table has no rows. Trying to do so at other times will throw an exception.

MSFeedColumns()

void attach(MSFeed& msFeed)

MSFeedColumns(const MSFeedColumns&)

MSFeedColumns& operator=(const MSFeedColumns&)

void attachOptionalCols(MSFeed& msFeed)