casacore
|
Read only access to table scalar Measure columns. More...
#include <MBaseline.h>
Public Member Functions | |
ScalarMeasColumn () | |
The default constructor creates a null object. More... | |
ScalarMeasColumn (const Table &tab, const String &columnName) | |
Create the ScalarMeasColumn from the table and column Name. More... | |
ScalarMeasColumn (const ScalarMeasColumn< M > &that) | |
Copy constructor (copy semantics). More... | |
virtual | ~ScalarMeasColumn () |
void | reference (const ScalarMeasColumn< M > &that) |
Change the reference to another column. More... | |
void | attach (const Table &tab, const String &columnName) |
Attach a column to the object. More... | |
M | convert (rownr_t rownr, const M &meas) const |
Get the Measure contained in the specified row and convert it to the reference and offset found in the given measure. More... | |
M | convert (rownr_t rownr, const MeasRef< M > &measRef) const |
Get the Measure contained in the specified row and convert it to the given reference. More... | |
M | convert (rownr_t rownr, uInt refCode) const |
const MeasRef< M > & | getMeasRef () const |
Returns the column's fixed reference or the reference of the last read Measure if references are variable. More... | |
void | setDescRefCode (uInt refCode, Bool tableMustBeEmpty=True) |
Reset the refCode, offset, or units. More... | |
void | setDescOffset (const Measure &offset, Bool tableMustBeEmpty=True) |
void | setDescUnits (const Vector< Unit > &units, Bool tableMustBeEmpty=True) |
void | get (rownr_t rownr, M &meas) const |
Get the Measure contained in the specified row. More... | |
M | operator() (rownr_t rownr) const |
void | put (rownr_t rownr, const M &meas) |
Put a Measure into the given row. More... | |
Public Member Functions inherited from casacore::TableMeasColumn | |
TableMeasColumn () | |
The default constructor creates a null object. More... | |
TableMeasColumn (const Table &tab, const String &columnName) | |
Create the ScalarMeasColumn from the table and column Name. More... | |
TableMeasColumn (const TableMeasColumn &that) | |
Copy constructor (copy semantics). More... | |
virtual | ~TableMeasColumn () |
void | reference (const TableMeasColumn &that) |
Change the reference to another column. More... | |
void | attach (const Table &tab, const String &columnName) |
Attach another column to the object. More... | |
Bool | isDefined (rownr_t rownr) const |
Tests if a row contains a Measure (i.e., if the row has a defined value). More... | |
const TableMeasDescBase & | measDesc () const |
Get access to the TableMeasDescBase describing the column. More... | |
TableMeasDescBase & | measDesc () |
Bool | isNull () const |
Test if the object is null. More... | |
void | throwIfNull () const |
Throw an exception if the object is null. More... | |
const String & | columnName () const |
Get the name of the column. More... | |
Table | table () const |
Get the Table object this column belongs to. More... | |
Bool | isScalar () const |
Is the column a scalar measures column? It is if the underlying column is a scalar column or an array column with a fixed 1-dimensional shape. More... | |
Protected Member Functions | |
MeasRef< M > | makeMeasRef (rownr_t rownr) const |
Make a MeasRef for the given row. More... | |
Private Member Functions | |
ScalarMeasColumn & | operator= (const ScalarMeasColumn< M > &that) |
Assignment makes no sense in a readonly class. More... | |
Bool | equalRefs (const MRBase &r1, const MRBase &r2) const |
Check if refs have the same value (as opposed to being the same object). More... | |
void | cleanUp () |
Private Attributes | |
Bool | itsConvFlag |
ArrayColumn< Double > * | itsArrDataCol |
ScalarColumn< Double > * | itsScaDataCol |
ScalarColumn< Int > * | itsRefIntCol |
ScalarColumn< String > * | itsRefStrCol |
ScalarMeasColumn< M > * | itsOffsetCol |
MeasRef< M > | itsMeasRef |
Additional Inherited Members | |
Protected Attributes inherited from casacore::TableMeasColumn | |
uInt | itsNvals |
CountedPtr< TableMeasDescBase > | itsDescPtr |
TableColumn | itsTabDataCol |
Bool | itsVarRefFlag |
Bool | itsVarOffFlag |
Read only access to table scalar Measure columns.
Public interface
ScalarMeasColumn objects can be used to access scalar Measure Columns in tables, both for reading and writing (if the table is writable).
Before a column can be accessed it must have previously been defined as a Measure column by use of the TableMeasDesc object.
The ScalarMeasColumn class is templated on Measure type. Typedefs exist in the various Measure classes (e.g. MEpoch) to make declaration less long winded. Constructing scalar Measure column objects using these typedefs looks like this:
The reading and writing of Measures columns is very similar to reading and writing of "ordinary" Table columns. get() and operator() exist for reading Measures and the put() member for adding Measures to a column. (put() is obviously not defined for ScalarMeasColumn objects.) Each of these members accepts a row number as an argument. The get() function gets the measure with the reference and offset as it is stored in the column. Furthermore the convert() function is available to get the measure with the given reference, possible offset, and possible frame
When a Measure is put, the reference and possible offset are converted if the measure column is defined with a fixed reference and/or offset. If the column's reference and offset are variable, the reference and offset of the measure as put are written into the appropriate reference and offset columns.
The standard Casacore Table system does not support Measures columns. This class overcomes this limitation.
Definition at line 46 of file MBaseline.h.
casacore::ScalarMeasColumn< M >::ScalarMeasColumn | ( | ) |
The default constructor creates a null object.
Useful for creating arrays of ScalarMeasColumn objects. Attempting to use a null object will produce a segmentation fault so care needs to be taken to initialize the objects first by using attach(). An ScalarMeasColumn object can be tested if it is null by using the isNull() member.
casacore::ScalarMeasColumn< M >::ScalarMeasColumn | ( | const Table & | tab, |
const String & | columnName | ||
) |
Create the ScalarMeasColumn from the table and column Name.
casacore::ScalarMeasColumn< M >::ScalarMeasColumn | ( | const ScalarMeasColumn< M > & | that | ) |
Copy constructor (copy semantics).
|
virtual |
void casacore::ScalarMeasColumn< M >::attach | ( | const Table & | tab, |
const String & | columnName | ||
) |
Attach a column to the object.
|
private |
|
inline |
Get the Measure contained in the specified row and convert it to the reference and offset found in the given measure.
Definition at line 177 of file ScalarMeasColumn.h.
Referenced by casacore::ScalarMeasColumn< casacore::MDoppler >::convert().
M casacore::ScalarMeasColumn< M >::convert | ( | rownr_t | rownr, |
const MeasRef< M > & | measRef | ||
) | const |
Get the Measure contained in the specified row and convert it to the given reference.
M casacore::ScalarMeasColumn< M >::convert | ( | rownr_t | rownr, |
uInt | refCode | ||
) | const |
|
private |
Check if refs have the same value (as opposed to being the same object).
void casacore::ScalarMeasColumn< M >::get | ( | rownr_t | rownr, |
M & | meas | ||
) | const |
|
inline |
Returns the column's fixed reference or the reference of the last read Measure if references are variable.
Definition at line 189 of file ScalarMeasColumn.h.
|
protected |
Make a MeasRef for the given row.
M casacore::ScalarMeasColumn< M >::operator() | ( | rownr_t | rownr | ) | const |
|
private |
Assignment makes no sense in a readonly class.
Declaring this operator private makes it unusable.
void casacore::ScalarMeasColumn< M >::put | ( | rownr_t | rownr, |
const M & | meas | ||
) |
Put a Measure into the given row.
void casacore::ScalarMeasColumn< M >::reference | ( | const ScalarMeasColumn< M > & | that | ) |
Change the reference to another column.
void casacore::ScalarMeasColumn< M >::setDescOffset | ( | const Measure & | offset, |
Bool | tableMustBeEmpty = True |
||
) |
void casacore::ScalarMeasColumn< M >::setDescRefCode | ( | uInt | refCode, |
Bool | tableMustBeEmpty = True |
||
) |
Reset the refCode, offset, or units.
It overwrites the value used when defining the TableMeasDesc. Resetting the refCode and offset can only be done if they were defined as fixed in the description.
Tip: In principle the functions can only be used if the table is empty, otherwise already written values have thereafter the incorrect reference, offset, or unit; However, it is possible that part of the table is already written and that the entire measure column is filled in later; In that case the reference, offset, or units can be set by using a False tableMustBeEmpty
argument;
void casacore::ScalarMeasColumn< M >::setDescUnits | ( | const Vector< Unit > & | units, |
Bool | tableMustBeEmpty = True |
||
) |
|
private |
Definition at line 227 of file ScalarMeasColumn.h.
|
private |
Definition at line 223 of file ScalarMeasColumn.h.
|
private |
Definition at line 237 of file ScalarMeasColumn.h.
Referenced by casacore::ScalarMeasColumn< casacore::MDoppler >::getMeasRef().
|
private |
Definition at line 234 of file ScalarMeasColumn.h.
|
private |
Definition at line 230 of file ScalarMeasColumn.h.
|
private |
Definition at line 231 of file ScalarMeasColumn.h.
|
private |
Definition at line 228 of file ScalarMeasColumn.h.