casa
5.7.0-16
|
Provides access to Scalar Quantum Columns in Tables. More...
#include <ScalarQuantColumn.h>
Public Member Functions | |
ScalarQuantColumn () | |
The default constructor creates a null object. More... | |
ScalarQuantColumn (const Table &tab, const String &columnName) | |
Create the ScalarQuantColumn from the specified table and column name. More... | |
ScalarQuantColumn (const Table &tab, const String &columnName, const Unit &) | |
Create the ScalarQuantColumn from the specified table and column name. More... | |
ScalarQuantColumn (const ScalarQuantColumn< T > &that) | |
Copy constructor (copy semantics). More... | |
~ScalarQuantColumn () | |
void | reference (const ScalarQuantColumn< T > &that) |
Change the reference to another column. More... | |
Quantum< T > | operator() (uInt rownr) const |
Return the quantum stored in the specified row. More... | |
Quantum< T > | operator() (uInt rownr, const Unit &) const |
Return the quantum stored in the specified row, converted to the given unit. More... | |
Quantum< T > | operator() (uInt rownr, const Quantum< T > &other) const |
Return the quantum in the specified row, converted to the unit in other. More... | |
void | put (uInt rownr, const Quantum< T > &q) |
Put a quantum into the table. More... | |
Bool | isUnitVariable () const |
Test whether the Quantum column has variable units. More... | |
const String & | getUnits () const |
Returns the column's value for Units as a string. More... | |
Bool | isNull () const |
Test if the object is null. More... | |
void | throwIfNull () const |
Throw an exception if the object is null. More... | |
std::shared_ptr< Quantum < Vector< T > > > | getColumn (const Unit &unit="") const |
Get the column as a Quantum<Vector<T> >. More... | |
void | attach (const Table &tab, const String &columnName) |
Attach a column to the object. More... | |
void | attach (const Table &tab, const String &columnName, const Unit &) |
void | get (uInt rownr, Quantum< T > &q) const |
Get the quantum stored in the specified row. More... | |
void | get (uInt rownr, Quantum< T > &q, const Unit &) const |
Get the quantum in the specified row, converted to the given unit. More... | |
void | get (uInt rownr, Quantum< T > &q, const Quantum< T > &other) const |
Get the quantum in the specified row, converted to the unit in other. More... | |
Protected Member Functions | |
const ScalarColumn< String > * | unitsCol () const |
Get access to itsUnitsCol. More... | |
Protected Attributes | |
Unit | itsUnit |
Private Member Functions | |
ScalarQuantColumn & | operator= (const ScalarQuantColumn< T > &that) |
Assignment makes no sense in a read only class. More... | |
Bool | operator== (const ScalarQuantColumn< T > &that) |
Comparison is not defined, since its semantics are unclear. More... | |
void | init (const Table &tab, const String &columnName) |
Initialize the ScalarQuantColumn from the specified table and column. More... | |
void | cleanUp () |
Deletes allocated memory etc. More... | |
void | getData (uInt rownr, Quantum< T > &q) const |
Get the data without possible conversion. More... | |
Private Attributes | |
ScalarColumn< T > * | itsDataCol |
ScalarColumn< String > * | itsUnitsCol |
Unit | itsUnitOut |
Bool | itsConvOut |
Provides access to Scalar Quantum Columns in Tables.
Public interface
The ScalarQuantColumn class provides read/write access to quanta stored in a scalar Quantum Table column. The Quantum column should already exist in the table and would have been defined by means of a TableQuantumDesc object. In addition, for a ScalarQuantColumn object to be useful the column should contain Quanta.
A ScalarQuantColumn object is used much in the same way as a ScalarColumn object.
Quanta retrieved from the column will normally have the Unit that was specified when the Quantum column was defined. However, it is possible to override the default column Unit by supplying a Unit in the ScalarQuantColumn constructor. When constructed in this fashion the retrieved Quanta will by default be retrieved in this unit, i.e. they will by default be converted to this unit.
By giving a unit (as a Unit or Quantum object) to a get function, the data can be retrieved in another unit than the default.
Add support for Quanta in the Tables system.
Definition at line 119 of file ScalarQuantColumn.h.
casacore::ScalarQuantColumn< T >::ScalarQuantColumn | ( | ) |
The default constructor creates a null object.
It is useful for creating arrays of ScalarQuantColumn objects. Attempting to use a null object will produce a segmentation fault so care needs to be taken to initialise the objects by using the attach() member before any attempt is made to use the object. The isNull() member can be used to test if a ScalarQuantColumn object is null.
casacore::ScalarQuantColumn< T >::ScalarQuantColumn | ( | const Table & | tab, |
const String & | columnName | ||
) |
Create the ScalarQuantColumn from the specified table and column name.
The default unit for data retrieved is the unit in which they were stored.
casacore::ScalarQuantColumn< T >::ScalarQuantColumn | ( | const Table & | tab, |
const String & | columnName, | ||
const Unit & | |||
) |
Create the ScalarQuantColumn from the specified table and column name.
The default unit for data retrieved is the given unit (the data is converted as needed).
casacore::ScalarQuantColumn< T >::ScalarQuantColumn | ( | const ScalarQuantColumn< T > & | that | ) |
Copy constructor (copy semantics).
casacore::ScalarQuantColumn< T >::~ScalarQuantColumn | ( | ) |
void casacore::ScalarQuantColumn< T >::attach | ( | const Table & | tab, |
const String & | columnName | ||
) |
void casacore::ScalarQuantColumn< T >::attach | ( | const Table & | tab, |
const String & | columnName, | ||
const Unit & | |||
) |
|
private |
Deletes allocated memory etc.
Called by destructor and any member which needs to reallocate data.
void casacore::ScalarQuantColumn< T >::get | ( | uInt | rownr, |
Quantum< T > & | q | ||
) | const |
void casacore::ScalarQuantColumn< T >::get | ( | uInt | rownr, |
Quantum< T > & | q, | ||
const Unit & | |||
) | const |
Get the quantum in the specified row, converted to the given unit.
void casacore::ScalarQuantColumn< T >::get | ( | uInt | rownr, |
Quantum< T > & | q, | ||
const Quantum< T > & | other | ||
) | const |
Get the quantum in the specified row, converted to the unit in other.
std::shared_ptr<Quantum<Vector<T> > > casacore::ScalarQuantColumn< T >::getColumn | ( | const Unit & | unit = "" | ) | const |
Get the column as a Quantum<Vector<T> >.
If unit
is not empty, the returned Quantum will have that unit. Else if the units are variable, the values in the returned Vector have been converted to the unit of the 0th row entry. Otherwise, the units of the returned Quantum are the units specified in the column descriptor.
|
private |
Get the data without possible conversion.
|
inline |
Returns the column's value for Units as a string.
An empty string is returned if the column has variable units.
Definition at line 187 of file ScalarQuantColumn.h.
|
private |
Initialize the ScalarQuantColumn from the specified table and column.
|
inline |
Test if the object is null.
Definition at line 191 of file ScalarQuantColumn.h.
|
inline |
Test whether the Quantum column has variable units.
Definition at line 182 of file ScalarQuantColumn.h.
Quantum<T> casacore::ScalarQuantColumn< T >::operator() | ( | uInt | rownr | ) | const |
Return the quantum stored in the specified row.
Quantum<T> casacore::ScalarQuantColumn< T >::operator() | ( | uInt | rownr, |
const Unit & | |||
) | const |
Return the quantum stored in the specified row, converted to the given unit.
Quantum<T> casacore::ScalarQuantColumn< T >::operator() | ( | uInt | rownr, |
const Quantum< T > & | other | ||
) | const |
Return the quantum in the specified row, converted to the unit in other.
|
private |
Assignment makes no sense in a read only class.
Declaring this operator private makes it unusable.
|
private |
Comparison is not defined, since its semantics are unclear.
void casacore::ScalarQuantColumn< T >::put | ( | uInt | rownr, |
const Quantum< T > & | q | ||
) |
Put a quantum into the table.
If the column supports variable units the q's unit is stored into the unit column defined in the TableQuantumDesc object. If units are fixed for the column, the quantum is converted as needed.
void casacore::ScalarQuantColumn< T >::reference | ( | const ScalarQuantColumn< T > & | that | ) |
Change the reference to another column.
void casacore::ScalarQuantColumn< T >::throwIfNull | ( | ) | const |
Throw an exception if the object is null.
|
inlineprotected |
Get access to itsUnitsCol.
Definition at line 210 of file ScalarQuantColumn.h.
|
private |
Definition at line 221 of file ScalarQuantColumn.h.
|
private |
Definition at line 215 of file ScalarQuantColumn.h.
Referenced by casacore::ScalarQuantColumn< casacore::Double >::isNull().
|
protected |
Definition at line 207 of file ScalarQuantColumn.h.
Referenced by casacore::ScalarQuantColumn< casacore::Double >::getUnits().
|
private |
Definition at line 219 of file ScalarQuantColumn.h.
|
private |
Definition at line 217 of file ScalarQuantColumn.h.
Referenced by casacore::ScalarQuantColumn< casacore::Double >::isUnitVariable(), and casacore::ScalarQuantColumn< casacore::Double >::unitsCol().