casacore
|
A column in the Tiled Storage Manager. More...
#include <TSMColumn.h>
Public Member Functions | |
TSMColumn (TiledStMan *stman, int dataType, const String &columnName) | |
Create a column of the given type. More... | |
virtual | ~TSMColumn () |
Frees up the storage. More... | |
const String & | columnName () const |
Get the name of the column. More... | |
virtual int | dataType () const |
Return the data type of the column. More... | |
void | setShapeColumn (const IPosition &shape) |
Set the fixed shape of the column. More... | |
const IPosition & | shapeColumn () const |
Get the fixed shape of the column. More... | |
TSMDataColumn * | makeDataColumn () |
Make a TSM data column object. More... | |
TSMCoordColumn * | makeCoordColumn (uInt axesNumber) |
Make a TSM coordinate column object. More... | |
TSMIdColumn * | makeIdColumn () |
Make a TSM id column object. More... | |
TSMColumn * | unlink () |
Unlink the underlying column. More... | |
Public Member Functions inherited from casacore::StManColumnBase | |
StManColumnBase (int dataType) | |
Default constructor. More... | |
~StManColumnBase () | |
DataType | dtype () const |
Int | elemSize () const |
Return the size of an element of the column's data type. More... | |
Public Member Functions inherited from casacore::DataManagerColumn | |
DataManagerColumn () | |
Create a column. More... | |
virtual | ~DataManagerColumn () |
Frees up the storage. More... | |
void | setIsFixedShape (Bool isFixedShape) |
Set the isFixedShape flag. More... | |
Bool | isFixedShape () const |
Is this a fixed shape column? More... | |
virtual String | dataTypeId () const |
Get the data type id of the column for dataType==TpOther. More... | |
virtual Bool | isWritable () const |
Test if data can be put into this column. More... | |
virtual void | setMaxLength (uInt maxLength) |
Set the maximum length of the value (can be used for strings). More... | |
void | setFixedShapeColumn (const IPosition &shape) |
Set the shape of all (fixed-shaped) arrays in the column. More... | |
virtual void | setShape (rownr_t rownr, const IPosition &shape) |
Set the shape of an (variable-shaped) array in the given row. More... | |
virtual void | setShapeTiled (rownr_t rownr, const IPosition &shape, const IPosition &tileShape) |
Set the shape and tile shape of an (variable-shaped) array in the given row. More... | |
virtual Bool | isShapeDefined (rownr_t rownr) |
Is the value shape defined in the given row? By default it returns True. More... | |
virtual uInt | ndim (rownr_t rownr) |
Get the dimensionality of the item in the given row. More... | |
virtual IPosition | shape (rownr_t rownr) |
Get the shape of the item in the given row. More... | |
virtual IPosition | tileShape (rownr_t rownr) |
Get the tile shape of the item in the given row. More... | |
virtual Bool | canChangeShape () const |
Can the data manager handle chaging the shape of an existing array? Default is no. More... | |
ColumnCache & | columnCache () |
Get access to the ColumnCache object. More... | |
const ColumnCache * | columnCachePtr () const |
void | get (rownr_t rownr, Bool *dataPtr) |
Get the scalar value in the given row. More... | |
void | get (rownr_t rownr, uChar *dataPtr) |
void | get (rownr_t rownr, Short *dataPtr) |
void | get (rownr_t rownr, uShort *dataPtr) |
void | get (rownr_t rownr, Int *dataPtr) |
void | get (rownr_t rownr, uInt *dataPtr) |
void | get (rownr_t rownr, Int64 *dataPtr) |
void | get (rownr_t rownr, float *dataPtr) |
void | get (rownr_t rownr, double *dataPtr) |
void | get (rownr_t rownr, Complex *dataPtr) |
void | get (rownr_t rownr, DComplex *dataPtr) |
void | get (rownr_t rownr, String *dataPtr) |
void | get (rownr_t rownr, void *dataPtr) |
This function is the get for all non-standard data types. More... | |
void | put (rownr_t rownr, const Bool *dataPtr) |
Put the scalar value into the given row. More... | |
void | put (rownr_t rownr, const uChar *dataPtr) |
void | put (rownr_t rownr, const Short *dataPtr) |
void | put (rownr_t rownr, const uShort *dataPtr) |
void | put (rownr_t rownr, const Int *dataPtr) |
void | put (rownr_t rownr, const uInt *dataPtr) |
void | put (rownr_t rownr, const Int64 *dataPtr) |
void | put (rownr_t rownr, const float *dataPtr) |
void | put (rownr_t rownr, const double *dataPtr) |
void | put (rownr_t rownr, const Complex *dataPtr) |
void | put (rownr_t rownr, const DComplex *dataPtr) |
void | put (rownr_t rownr, const String *dataPtr) |
void | put (rownr_t rownr, const void *dataPtr) |
This function is the put for all non-standard data types. More... | |
virtual void | getScalarColumnV (ArrayBase &dataPtr) |
Get all scalar values in the column. More... | |
virtual void | putScalarColumnV (const ArrayBase &dataPtr) |
Put all scalar values in the column. More... | |
virtual void | getScalarColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr) |
Get some scalar values in the column. More... | |
virtual void | putScalarColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr) |
Put some scalar values in the column. More... | |
virtual void | getArrayV (rownr_t rownr, ArrayBase &dataPtr) |
Get the array value in the given row. More... | |
virtual void | putArrayV (rownr_t rownr, const ArrayBase &data) |
Put the array value into the given row. More... | |
virtual void | getArrayColumnV (ArrayBase &data) |
Get all array values in the column. More... | |
virtual void | putArrayColumnV (const ArrayBase &data) |
Put all array values in the column. More... | |
virtual void | getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data) |
Get some array values in the column. More... | |
virtual void | putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &data) |
Put some array values in the column. More... | |
virtual void | getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &data) |
Get a section of the array in the given row. More... | |
virtual void | putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &data) |
Put into a section of the array in the given row. More... | |
virtual void | getColumnSliceV (const Slicer &slicer, ArrayBase &data) |
Get a section of all arrays in the column. More... | |
virtual void | putColumnSliceV (const Slicer &slicer, const ArrayBase &data) |
Put into a section of all arrays in the column. More... | |
virtual void | getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) |
Get a section of some arrays in the column. More... | |
virtual void | putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) |
Put into a section of some arrays in the column. More... | |
void | throwGet () const |
Throw an "invalid operation" exception for the default implementation of get. More... | |
void | throwPut () const |
Throw an "invalid operation" exception for the default implementation of put. More... | |
void | setColumnName (const String &colName) |
Set the column name. More... | |
const String & | columnName () const |
Get rhe column name. More... | |
Protected Member Functions | |
TSMColumn (const TSMColumn &that) | |
The copy constructor can only be used to copy a derived class. More... | |
Protected Member Functions inherited from casacore::DataManagerColumn | |
virtual void | getBool (rownr_t rownr, Bool *dataPtr) |
Get the scalar value in the given row. More... | |
virtual void | getuChar (rownr_t rownr, uChar *dataPtr) |
virtual void | getShort (rownr_t rownr, Short *dataPtr) |
virtual void | getuShort (rownr_t rownr, uShort *dataPtr) |
virtual void | getInt (rownr_t rownr, Int *dataPtr) |
virtual void | getuInt (rownr_t rownr, uInt *dataPtr) |
virtual void | getInt64 (rownr_t rownr, Int64 *dataPtr) |
virtual void | getfloat (rownr_t rownr, float *dataPtr) |
virtual void | getdouble (rownr_t rownr, double *dataPtr) |
virtual void | getComplex (rownr_t rownr, Complex *dataPtr) |
virtual void | getDComplex (rownr_t rownr, DComplex *dataPtr) |
virtual void | getString (rownr_t rownr, String *dataPtr) |
virtual void | getOther (rownr_t rownr, void *dataPtr) |
This function is the get for all non-standard data types. More... | |
virtual void | putBool (rownr_t rownr, const Bool *dataPtr) |
Put the scalar value into the given row. More... | |
virtual void | putuChar (rownr_t rownr, const uChar *dataPtr) |
virtual void | putShort (rownr_t rownr, const Short *dataPtr) |
virtual void | putuShort (rownr_t rownr, const uShort *dataPtr) |
virtual void | putInt (rownr_t rownr, const Int *dataPtr) |
virtual void | putuInt (rownr_t rownr, const uInt *dataPtr) |
virtual void | putInt64 (rownr_t rownr, const Int64 *dataPtr) |
virtual void | putfloat (rownr_t rownr, const float *dataPtr) |
virtual void | putdouble (rownr_t rownr, const double *dataPtr) |
virtual void | putComplex (rownr_t rownr, const Complex *dataPtr) |
virtual void | putDComplex (rownr_t rownr, const DComplex *dataPtr) |
virtual void | putString (rownr_t rownr, const String *dataPtr) |
virtual void | putOther (rownr_t rownr, const void *dataPtr) |
This function is the put for all non-standard data types. More... | |
void | getScalarColumnBase (ArrayBase &dataPtr) |
The default implementations of get and put functions. More... | |
void | putScalarColumnBase (const ArrayBase &dataPtr) |
void | getScalarColumnCellsBase (const RefRows &rownrs, ArrayBase &dataPtr) |
void | putScalarColumnCellsBase (const RefRows &rownrs, const ArrayBase &dataPtr) |
void | getArrayColumnBase (ArrayBase &data) |
void | putArrayColumnBase (const ArrayBase &data) |
void | getArrayColumnCellsBase (const RefRows &rownrs, ArrayBase &data) |
void | putArrayColumnCellsBase (const RefRows &rownrs, const ArrayBase &data) |
void | getSliceBase (rownr_t rownr, const Slicer &slicer, ArrayBase &data) |
void | putSliceBase (rownr_t rownr, const Slicer &slicer, const ArrayBase &data) |
void | getColumnSliceBase (const Slicer &slicer, ArrayBase &data) |
void | putColumnSliceBase (const Slicer &slicer, const ArrayBase &data) |
void | getColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) |
void | putColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) |
Protected Attributes | |
TiledStMan * | stmanPtr_p |
The storage manager. More... | |
int | dtype_p |
The data type of the data (as defined in DataType.h). More... | |
String | name_p |
The name of the column. More... | |
IPosition | columnShape_p |
The fixed shape of the column. More... | |
TSMColumn * | colPtr_p |
The specialized column object (i.e. More... | |
Private Member Functions | |
TSMColumn & | operator= (const TSMColumn &) |
Forbid assignment. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from casacore::StManColumnBase | |
static Bool | isNativeDataType (int dtype) |
Test if the given data type is supported by storage managers. More... | |
A column in the Tiled Storage Manager.
Internal
TSMColumn handles a column for the Tiled Storage Manager.
TSMColumn serves 2 purposes:
The protocol used for creating the derived TSMDataColumn, TSMCoordColumn, and TSMIdColumn objects is somewhat complicated. It works as follows:
When the table is set up, a TSMColumn object gets created for all columns in a TiledStMan storage manager. The TiledStMan initialization function lets each TSMColumn object create its specialized TSMXXColumn object (using make{Coord,Id,Data}Column). At the end of the setup process the TSMColumn objects are deleted and the DataManagerColumn pointers in the BaseColumn objects get replaced by those to the specialized objects. In that way no needless virtual function calls are done.
TSMColumn is needed for the initial DataManagerColumn setup process. It is also useful as a base class for all TiledStMan column objects.
Definition at line 97 of file TSMColumn.h.
casacore::TSMColumn::TSMColumn | ( | TiledStMan * | stman, |
int | dataType, | ||
const String & | columnName | ||
) |
Create a column of the given type.
It will maintain a pointer to its parent storage manager.
|
virtual |
Frees up the storage.
|
protected |
The copy constructor can only be used to copy a derived class.
|
inline |
|
virtual |
Return the data type of the column.
Reimplemented from casacore::StManColumnBase.
TSMCoordColumn* casacore::TSMColumn::makeCoordColumn | ( | uInt | axesNumber | ) |
Make a TSM coordinate column object.
TSMDataColumn* casacore::TSMColumn::makeDataColumn | ( | ) |
Make a TSM data column object.
Add the pixel length to the total data pixel length.
TSMIdColumn* casacore::TSMColumn::makeIdColumn | ( | ) |
Make a TSM id column object.
|
virtual |
Set the fixed shape of the column.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Get the fixed shape of the column.
Definition at line 162 of file TSMColumn.h.
References columnShape_p.
TSMColumn* casacore::TSMColumn::unlink | ( | ) |
Unlink the underlying column.
It clears the pointer and returns its original value. This is used to get a pointer directly to the underlying TSMXXColumn object in the BaseColumn classes. In that way only 1 instead of 2 virtual function calls are needed for a get or put.
|
protected |
The specialized column object (i.e.
data, coordinate or id).
Definition at line 148 of file TSMColumn.h.
|
protected |
The fixed shape of the column.
Definition at line 146 of file TSMColumn.h.
Referenced by shapeColumn().
|
protected |
The data type of the data (as defined in DataType.h).
Definition at line 142 of file TSMColumn.h.
|
protected |
|
protected |
The storage manager.
Definition at line 140 of file TSMColumn.h.