TableMeasValueDesc.h

Classes

TableMeasValueDesc -- Definition of a Measure Value in a Table. (full description)

class TableMeasValueDesc

Interface

Public Members
TableMeasValueDesc()
TableMeasValueDesc (const TableDesc&, const String& columnName)
TableMeasValueDesc (const String& columnName) : itsColumn (columnName)
TableMeasValueDesc (const Char* columnName) : itsColumn (columnName)
TableMeasValueDesc (const TableMeasValueDesc& that)
~TableMeasValueDesc()
TableMeasValueDesc& operator= (const TableMeasValueDesc& that)
void write (TableDesc&, const TableRecord& measInfo)
void write (Table&, const TableRecord& measInfo)
const String& columnName() const
Private Members
void writeKeys (TableRecord& columnKeyset, const TableRecord& measInfo)
void checkColumn (const TableDesc& td) const

Description

Review Status

Reviewed By:
Bob Garwood
Date Reviewed:
1999/12/23
Programs:
Tests:

Prerequisite

Synopsis

TableMeasValueDesc is a class for setting up the Measure value component of the TableMeasDesc in the TableMeasures system. Its purpose it to specify the Table column to be used as a Measure column through which Measures are subsequently written to and read from via either an ArrayMeasColumn or ScalarMeasColumn object.

The column used as the Measure column is always an ArrayColumn irrespective of whether it is to store scalars or arrays of Measures and irrespective of the type of Measure.

Example

  1.     // Add a column to the table.  This column is to be used to store
        // MPositions.  Measure columns are alway ArrayColumn<Double>
        ArrayColumnDesc<Double> cdPosCol("MPosColumn", "MPosition column");
        td.addColumn(cdPosCol);
        ...
        // create the TableMeasValueDesc object
        TableMeasValueDesc valueDesc(td, "MPosColumn");
    
For an example of the use of the TableMeasValueDesc 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

Member Description

TableMeasValueDesc()

Null constructor

TableMeasValueDesc (const TableDesc&, const String& columnName)

Construct the MeasValue column descriptor for the given column. The column must be a column of type Double and should exist in the TableDesc.

TableMeasValueDesc (const String& columnName) : itsColumn (columnName)
TableMeasValueDesc (const Char* columnName) : itsColumn (columnName)

Construct the MeasValue column descriptor for the given column. Checking if the column exists is done in the write function.

TableMeasValueDesc (const TableMeasValueDesc& that)

Copy constructor.

~TableMeasValueDesc()

TableMeasValueDesc& operator= (const TableMeasValueDesc& that)

Assignment operator.

void write (TableDesc&, const TableRecord& measInfo)
void write (Table&, const TableRecord& measInfo)

Write the type, unit, and MEASINFO record into the column keywords. It checks if the column exists in the given table description.

const String& columnName() const

Get the name of the underlying column.

void writeKeys (TableRecord& columnKeyset, const TableRecord& measInfo)

Write the actual keywords.

void checkColumn (const TableDesc& td) const

Throw an exception if the quantum column doesn't exist or is of the wrong type.