casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::TableMeasOffsetDesc Class Reference

Definition of a Measure Offset in a Table. More...

#include <TableMeasOffsetDesc.h>

Public Member Functions

 TableMeasOffsetDesc (const Measure &offset)
 Constructor which defines a constant (non-variable) offset. More...
 
 TableMeasOffsetDesc (const TableMeasDescBase &offsetColumn, Bool asArray=False)
 Constructor for defining a variable offset. More...
 
 TableMeasOffsetDesc (const TableMeasOffsetDesc &that)
 Copy constructor (copy semantics). More...
 
 ~TableMeasOffsetDesc ()
 
TableMeasOffsetDescoperator= (const TableMeasOffsetDesc &that)
 Assignment operator (copy semantics). More...
 
const MeasuregetOffset () const
 Get the (non-variable) measure offset for this column. More...
 
Bool isVariable () const
 Returns True if the offset varies per row. More...
 
Bool isArray () const
 Returns True if the offset varies per array element. More...
 
const StringcolumnName () const
 Gets the name of the column which stores the variable offset. More...
 
void resetOffset (const Measure &offset)
 Reset the offset. More...
 
void write (TableDesc &, TableRecord &measInfo, const String &prefix)
 Write the information into the record. More...
 
void write (Table &, TableRecord &measInfo, const String &prefix)
 

Static Public Member Functions

static TableMeasOffsetDescreconstruct (const TableRecord &measInfo, const String &prefix, const Table &tab)
 Reconstructs the TableMeasOffsetDesc from the measInfo TableRecord. More...
 

Private Member Functions

 TableMeasOffsetDesc (const TableRecord &measInfo, const String &prefix, const Table &)
 Constructor which uses the measInfo TableRecord. More...
 
void writeKeys (TableRecord &measInfo, const String &prefix)
 Write the actual keywords. More...
 

Private Attributes

TableMeasDescBaseitsTMDesc
 
MeasureHolder itsMeasure
 
String itsVarColName
 
Bool itsVarPerArr
 

Detailed Description

Definition of a Measure Offset in a Table.

Intended use:

Public interface

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1999/12/23
Test programs:
tTableMeasures

Prerequisite

Synopsis

This class assists in the definition of the offset component of a TableMeasDesc in the TableMeasures system. Four possibilities exist for specifying the handling of measure offsets in a Measure column. These are:

Note that this last option is only relevant when using ArrayMeasColumns.

Examples of each of these follow.

Example

  1. Specifying a single fixed offset. Note that a Measure offset is itself a measure

    // create an MEpoch to use as the offset in an MEpoch column
    MEpoch offset(MVEpoch(MVTime(1996, 5, 17, (8+18./60.)/24.)), MEpoch::UTC);
    TableMeasOffsetDesc offsetDesc(offset);

  2. Storing an offset per row needs an offset column. Measure offsets are Measures so a Measure column is needed:

    // Need a column for the offsets. This is to be a Measure column,
    // so the rules for creating a Measure column apply.
    ArrayColumnDesc<Double> cdOffset("OffsetCol", "Variable Offset col");
    ..\.
    // add the column to the table
    td.addColumn(cdOffset);
    ..\.
    // Create the Measure column to be used as the measure offset column
    TableMeasValueDesc valDesc(td, "OffsetCol");
    TableMeasDesc<MEpoch> offset(valDesc);
    // Create the offset descriptor
    TableMeasOffsetDesc offsetDesc(offset);

  3. Storing an offset per array element per row requires one change in the constructor used in the previous example:
    ..\.
    // set up column and TableMeasDesc as before
    ..\.
    // Setting the asArray parameter to True in the constructor specifies
    // per element offset storage
    TableMeasOffsetDesc offsetDesc(offset, True);

For an example of the use of the TableMeasOffsetDesc class in the context of a full TableMeasDesc declaration see class TableMeasDesc.

Motivation

Creating the required keyword for the definition of a Measure in a Table is somewhat complicated. This class assists in that process.

Thrown Exceptions

Definition at line 145 of file TableMeasOffsetDesc.h.

Constructor & Destructor Documentation

casacore::TableMeasOffsetDesc::TableMeasOffsetDesc ( const Measure offset)

Constructor which defines a constant (non-variable) offset.

All measures in the columns will have the same offset.

casacore::TableMeasOffsetDesc::TableMeasOffsetDesc ( const TableMeasDescBase offsetColumn,
Bool  asArray = False 
)

Constructor for defining a variable offset.

If asArray is True then the offset is stored per array element. The default is for the offset to be stored (and hence variable) per row.

casacore::TableMeasOffsetDesc::TableMeasOffsetDesc ( const TableMeasOffsetDesc that)

Copy constructor (copy semantics).

casacore::TableMeasOffsetDesc::~TableMeasOffsetDesc ( )
casacore::TableMeasOffsetDesc::TableMeasOffsetDesc ( const TableRecord measInfo,
const String prefix,
const Table  
)
private

Constructor which uses the measInfo TableRecord.

Member Function Documentation

const String& casacore::TableMeasOffsetDesc::columnName ( ) const
inline

Gets the name of the column which stores the variable offset.

"" is returned if the offset is not variable.

Definition at line 185 of file TableMeasOffsetDesc.h.

References itsVarColName.

Referenced by casacore::TableMeasRefDesc::offsetColumnName().

const Measure& casacore::TableMeasOffsetDesc::getOffset ( ) const

Get the (non-variable) measure offset for this column.

If it doesn't exist (thus if the offset is variable), an exception is thrown.

Referenced by casacore::TableMeasRefDesc::getOffset().

Bool casacore::TableMeasOffsetDesc::isArray ( ) const
inline

Returns True if the offset varies per array element.

Definition at line 180 of file TableMeasOffsetDesc.h.

References isVariable(), and itsVarPerArr.

Referenced by casacore::TableMeasRefDesc::isOffsetArray().

Bool casacore::TableMeasOffsetDesc::isVariable ( ) const
inline

Returns True if the offset varies per row.

Definition at line 176 of file TableMeasOffsetDesc.h.

References itsTMDesc.

Referenced by isArray(), and casacore::TableMeasRefDesc::isOffsetVariable().

TableMeasOffsetDesc& casacore::TableMeasOffsetDesc::operator= ( const TableMeasOffsetDesc that)

Assignment operator (copy semantics).

static TableMeasOffsetDesc* casacore::TableMeasOffsetDesc::reconstruct ( const TableRecord measInfo,
const String prefix,
const Table tab 
)
static

Reconstructs the TableMeasOffsetDesc from the measInfo TableRecord.

void casacore::TableMeasOffsetDesc::resetOffset ( const Measure offset)

Reset the offset.

It overwrites the value used when defining the TableMeasDesc. It is only possible if it was defined as fixed for the entire column.

void casacore::TableMeasOffsetDesc::write ( TableDesc ,
TableRecord measInfo,
const String prefix 
)

Write the information into the record.

void casacore::TableMeasOffsetDesc::write ( Table ,
TableRecord measInfo,
const String prefix 
)
void casacore::TableMeasOffsetDesc::writeKeys ( TableRecord measInfo,
const String prefix 
)
private

Write the actual keywords.

Member Data Documentation

MeasureHolder casacore::TableMeasOffsetDesc::itsMeasure
private

Definition at line 201 of file TableMeasOffsetDesc.h.

TableMeasDescBase* casacore::TableMeasOffsetDesc::itsTMDesc
private

Definition at line 200 of file TableMeasOffsetDesc.h.

Referenced by isVariable().

String casacore::TableMeasOffsetDesc::itsVarColName
private

Definition at line 202 of file TableMeasOffsetDesc.h.

Referenced by columnName().

Bool casacore::TableMeasOffsetDesc::itsVarPerArr
private

Definition at line 203 of file TableMeasOffsetDesc.h.

Referenced by isArray().


The documentation for this class was generated from the following file: