MSSourceColumns.h

Classes

ROMSSourceColumns -- A class to provide easy read-only access to MSSource columns (full description)
MSSourceColumns -- A class to provide easy read-write access to MSSource columns (full description)

class ROMSSourceColumns

Interface

Public Members
ROMSSourceColumns(const MSSource& msSource)
~ROMSSourceColumns()
Bool isNull() const
const ROScalarColumn<Int>& calibrationGroup() const
const ROScalarColumn<String>& code() const
const ROArrayColumn<Double>& direction() const
const ROArrayQuantColumn<Double>& directionQuant() const
const ROScalarMeasColumn<MDirection>& directionMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numLines() const
const ROArrayColumn<Double>& properMotion() const
const ROArrayQuantColumn<Double>& properMotionQuant() const
const ROScalarColumn<Int>& sourceId() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROScalarColumn<Int>& pulsarId() const
const ROArrayColumn<Double>& restFrequency() const
const ROArrayQuantColumn<Double>& restFrequencyQuant() const
const ROArrayMeasColumn<MFrequency>& restFrequencyMeas() const
const ROScalarColumn<TableRecord>& sourceModel() const
const ROArrayColumn<Double>& sysvel() const
const ROArrayQuantColumn<Double>& sysvelQuant() const
const ROArrayMeasColumn<MRadialVelocity>& sysvelMeas() const
const ROArrayColumn<String>& transition() const
uInt nrow() const
Protected Members
ROMSSourceColumns()
void attach(const MSSource& msSource)
Private Members
ROMSSourceColumns(const ROMSSourceColumns&)
ROMSSourceColumns& operator=(const ROMSSourceColumns&)
void attachOptionalCols(const MSSource& msSource)

Description

Review Status

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

Prerequisite

Etymology

ROMSSourceColumns stands for Read-Only MeasurementSet Source Table columns.

Synopsis

This class provides read-only access to the columns in the MSSource 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

ROMSSourceColumns(const MSSource& msSource)

Construct from the supplied Table

~ROMSSourceColumns()

The destructor does nothing special

Bool isNull() const

Is this object defined? (MSSource table is optional)

const ROScalarColumn<Int>& calibrationGroup() const
const ROScalarColumn<String>& code() const
const ROArrayColumn<Double>& direction() const
const ROArrayQuantColumn<Double>& directionQuant() const
const ROScalarMeasColumn<MDirection>& directionMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numLines() const
const ROArrayColumn<Double>& properMotion() const
const ROArrayQuantColumn<Double>& properMotionQuant() const
const ROScalarColumn<Int>& sourceId() 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 ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROScalarColumn<Int>& pulsarId() const
const ROArrayColumn<Double>& restFrequency() const
const ROArrayQuantColumn<Double>& restFrequencyQuant() const
const ROArrayMeasColumn<MFrequency>& restFrequencyMeas() const
const ROScalarColumn<TableRecord>& sourceModel() const
const ROArrayColumn<Double>& sysvel() const
const ROArrayQuantColumn<Double>& sysvelQuant() const
const ROArrayMeasColumn<MRadialVelocity>& sysvelMeas() const
const ROArrayColumn<String>& transition() const

Access to optional columns

uInt nrow() const

Convenience function that returns the number of rows in any of the columns. Returns zero if the object is null.

ROMSSourceColumns()

void attach(const MSSource& msSource)

ROMSSourceColumns(const ROMSSourceColumns&)

ROMSSourceColumns& operator=(const ROMSSourceColumns&)

void attachOptionalCols(const MSSource& msSource)


class MSSourceColumns: public ROMSSourceColumns

Interface

Public Members
MSSourceColumns(MSSource& msSource)
~MSSourceColumns()
ScalarColumn<Int>& calibrationGroup()
ScalarColumn<String>& code()
ArrayColumn<Double>& direction()
ArrayQuantColumn<Double>& directionQuant()
ScalarMeasColumn<MDirection>& directionMeas()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<String>& name()
ScalarColumn<Int>& numLines()
ArrayColumn<Double>& properMotion()
ArrayQuantColumn<Double>& properMotionQuant()
ScalarColumn<Int>& sourceId()
ScalarColumn<Int>& spectralWindowId()
ScalarColumn<Double>& time()
ScalarQuantColumn<Double>& timeQuant()
ScalarMeasColumn<MEpoch>& timeMeas()
ArrayColumn<Double>& position()
ArrayQuantColumn<Double>& positionQuant()
ScalarMeasColumn<MPosition>& positionMeas()
ScalarColumn<Int>& pulsarId()
ArrayColumn<Double>& restFrequency()
ArrayQuantColumn<Double>& restFrequencyQuant()
ArrayMeasColumn<MFrequency>& restFrequencyMeas()
ScalarColumn<TableRecord>& sourceModel()
ArrayColumn<Double>& sysvel()
ArrayQuantColumn<Double>& sysvelQuant()
ArrayMeasColumn<MRadialVelocity>& sysvelMeas()
ArrayColumn<String>& transition()
const ROScalarColumn<Int>& calibrationGroup() const
const ROScalarColumn<String>& code() const
const ROArrayColumn<Double>& direction() const
const ROArrayQuantColumn<Double>& directionQuant() const
const ROScalarMeasColumn<MDirection>& directionMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numLines() const
const ROArrayColumn<Double>& properMotion() const
const ROArrayQuantColumn<Double>& properMotionQuant() const
const ROScalarColumn<Int>& sourceId() const
const ROScalarColumn<Int>& spectralWindowId() const
const ROScalarColumn<Double>& time() const
const ROScalarQuantColumn<Double>& timeQuant() const
const ROScalarMeasColumn<MEpoch>& timeMeas() const
const ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROScalarColumn<Int>& pulsarId() const
const ROArrayColumn<Double>& restFrequency() const
const ROArrayQuantColumn<Double>& restFrequencyQuant() const
const ROArrayMeasColumn<MFrequency>& restFrequencyMeas() const
const ROScalarColumn<TableRecord>& sourceModel() const
const ROArrayColumn<Double>& sysvel() const
const ROArrayQuantColumn<Double>& sysvelQuant() const
const ROArrayMeasColumn<MRadialVelocity>& sysvelMeas() const
const ROArrayColumn<String>& transition() const
void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)
void setDirectionRef(MDirection::Types ref)
void setPositionRef(MPosition::Types ref)
void setFrequencyRef(MFrequency::Types ref)
void setRadialVelocityRef(MRadialVelocity::Types ref)
Protected Members
MSSourceColumns()
void attach(MSSource& msSource)
Private Members
MSSourceColumns(const MSSourceColumns&)
MSSourceColumns& operator=(const MSSourceColumns&)
void attachOptionalCols(MSSource& msSource)

Description

Review Status

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

Prerequisite

Etymology

MSSourceColumns stands for MeasurementSet Source Table columns.

Synopsis

This class provides access to the columns in the MSSource 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

MSSourceColumns(MSSource& msSource)

Construct from the supplied Table

~MSSourceColumns()

The destructor does nothing special

ScalarColumn<Int>& calibrationGroup()
ScalarColumn<String>& code()
ArrayColumn<Double>& direction()
ArrayQuantColumn<Double>& directionQuant()
ScalarMeasColumn<MDirection>& directionMeas()
ScalarColumn<Double>& interval()
ScalarQuantColumn<Double>& intervalQuant()
ScalarColumn<String>& name()
ScalarColumn<Int>& numLines()
ArrayColumn<Double>& properMotion()
ArrayQuantColumn<Double>& properMotionQuant()
ScalarColumn<Int>& sourceId()
ScalarColumn<Int>& spectralWindowId()
ScalarColumn<Double>& time()
ScalarQuantColumn<Double>& timeQuant()
ScalarMeasColumn<MEpoch>& timeMeas()

Read-write access to required columns

ArrayColumn<Double>& position()
ArrayQuantColumn<Double>& positionQuant()
ScalarMeasColumn<MPosition>& positionMeas()
ScalarColumn<Int>& pulsarId()
ArrayColumn<Double>& restFrequency()
ArrayQuantColumn<Double>& restFrequencyQuant()
ArrayMeasColumn<MFrequency>& restFrequencyMeas()
ScalarColumn<TableRecord>& sourceModel()
ArrayColumn<Double>& sysvel()
ArrayQuantColumn<Double>& sysvelQuant()
ArrayMeasColumn<MRadialVelocity>& sysvelMeas()
ArrayColumn<String>& transition()

Read-write access to optional columns

const ROScalarColumn<Int>& calibrationGroup() const
const ROScalarColumn<String>& code() const
const ROArrayColumn<Double>& direction() const
const ROArrayQuantColumn<Double>& directionQuant() const
const ROScalarMeasColumn<MDirection>& directionMeas() const
const ROScalarColumn<Double>& interval() const
const ROScalarQuantColumn<Double>& intervalQuant() const
const ROScalarColumn<String>& name() const
const ROScalarColumn<Int>& numLines() const
const ROArrayColumn<Double>& properMotion() const
const ROArrayQuantColumn<Double>& properMotionQuant() const
const ROScalarColumn<Int>& sourceId() 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 ROArrayColumn<Double>& position() const
const ROArrayQuantColumn<Double>& positionQuant() const
const ROScalarMeasColumn<MPosition>& positionMeas() const
const ROScalarColumn<Int>& pulsarId() const
const ROArrayColumn<Double>& restFrequency() const
const ROArrayQuantColumn<Double>& restFrequencyQuant() const
const ROArrayMeasColumn<MFrequency>& restFrequencyMeas() const
const ROScalarColumn<TableRecord>& sourceModel() const
const ROArrayColumn<Double>& sysvel() const
const ROArrayQuantColumn<Double>& sysvelQuant() const
const ROArrayMeasColumn<MRadialVelocity>& sysvelMeas() const
const ROArrayColumn<String>& transition() 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 DIRECTION 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.

void setFrequencyRef(MFrequency::Types ref)

set the frequency type for the REST_FREQUENCY column. Does nothing if this column is not defined. This can only be done when the table has no rows. Trying to do so at other times will throw an exception.

void setRadialVelocityRef(MRadialVelocity::Types ref)

set the radial velocity type for the SYSVEL column. Does nothing if this column is not defined. This can only be done when the table has no rows. Trying to do so at other times will throw an exception.

MSSourceColumns()

void attach(MSSource& msSource)

MSSourceColumns(const MSSourceColumns&)

MSSourceColumns& operator=(const MSSourceColumns&)

void attachOptionalCols(MSSource& msSource)