casacore
|
A data column in Tiled Storage Manager. More...
#include <TSMDataColumn.h>
Public Member Functions | |
TSMDataColumn (const TSMColumn &column) | |
Create a data column from the given column. More... | |
virtual | ~TSMDataColumn () |
Frees up the storage. More... | |
uInt | tilePixelSize () const |
Return the size of a pixel in the tile in external format. More... | |
uInt | localPixelSize () const |
Return the size of a pixel in the tile in local format. More... | |
uInt64 | dataLength (uInt64 nrPixels) const |
Determine the length to store the given number of pixels. More... | |
void | setColumnNumber (uInt colnr) |
Set column sequence number. More... | |
Bool | canChangeShape () const |
Changing array shapes for non-FixedShape columns when the parent tiled storage manager can handle it. More... | |
void | setShape (rownr_t rownr, const IPosition &shape) |
Set the shape of the data array in the given row. More... | |
void | setShapeTiled (rownr_t rownr, const IPosition &shape, const IPosition &tileShape) |
Set the shape and tile shape of the array in the given row. More... | |
Bool | isShapeDefined (rownr_t rownr) |
Is the value shape defined in the given row? More... | |
IPosition | shape (rownr_t rownr) |
Get the shape of the item in the given row. More... | |
IPosition | tileShape (rownr_t rownr) |
Get the tile shape of the item in the given row. More... | |
virtual void | getBool (rownr_t rownr, Bool *dataPtr) |
Get a 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 | putBool (rownr_t rownr, const Bool *dataPtr) |
Put a 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 | getArrayV (rownr_t rownr, ArrayBase &data) |
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 | getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &dataPtr) |
Get into 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 | getArrayColumnV (ArrayBase &arr) |
Get all array values in the column. More... | |
virtual void | putArrayColumnV (const ArrayBase &arr) |
Put all array values in the column. More... | |
virtual void | getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data) |
Get the array values in some cells of the column. More... | |
virtual void | putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr) |
Put the array values into some cells of the column. More... | |
virtual void | getColumnSliceV (const Slicer &slicer, ArrayBase &arr) |
Get a section of all arrays in the column. More... | |
virtual void | putColumnSliceV (const Slicer &slicer, const ArrayBase &data) |
Put a section into all array values in the column. More... | |
virtual void | getColumnSliceCellsV (const RefRows &rownrs, const Slicer &ns, ArrayBase &data) |
Get a section from some cells of the column. More... | |
virtual void | putColumnSliceCellsV (const RefRows &rownrs, const Slicer &ns, const ArrayBase &data) |
Put into a section of some cells of the column. More... | |
void | readTile (void *to, const void *from, uInt nrPixels) |
Read the data of the column from a tile. More... | |
void | writeTile (void *to, const void *from, uInt nrPixels) |
Write the data of the column into a tile. More... | |
Conversion::ValueFunction * | getConvertFunction (Bool writeFlag) const |
Get the function to convert from external to local format (or vice-versa if writeFlag=True ). More... | |
size_t | getNrConvert () const |
Get nr of elements in a value to convert (usually 1, but 2 for Complex). More... | |
Bool | isConversionNeeded () const |
Does a conversion (byte swap) needs to be done? More... | |
Public Member Functions inherited from casacore::TSMColumn | |
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 uInt | ndim (rownr_t rownr) |
Get the dimensionality of the item in the given row. 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... | |
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... | |
Private Member Functions | |
TSMDataColumn (const TSMDataColumn &) | |
Forbid copy constructor. More... | |
TSMDataColumn & | operator= (const TSMDataColumn &) |
Forbid assignment. More... | |
void | accessCell (rownr_t rownr, const void *dataPtr, Bool writeFlag) |
Read or write a data cell in the cube. More... | |
void | accessCellSlice (rownr_t rownr, const Slicer &ns, const void *dataPtr, Bool writeFlag) |
Read or write a slice of a data cell in the cube. More... | |
void | accessColumn (const void *dataPtr, Bool writeFlag) |
Read or write an entire column. More... | |
void | accessColumnSlice (const Slicer &ns, const void *dataPtr, Bool writeFlag) |
Read or write a slice from the entire column. More... | |
void | accessColumnCells (const RefRows &rownrs, const IPosition &shape, const void *dataPtr, Bool writeFlag) |
Read or write some cells in a column. More... | |
void | accessColumnSliceCells (const RefRows &rownrs, const Slicer &ns, const IPosition &shape, const void *dataPtr, Bool writeFlag) |
Read or write some cells in a column. More... | |
void | accessFullCells (TSMCube *hypercube, char *dataPtr, Bool writeFlag, const IPosition &start, const IPosition &end, const IPosition &incr) |
Read or write the full cells given by start,end,incr. More... | |
void | accessSlicedCells (TSMCube *hypercube, char *dataPtr, Bool writeFlag, const IPosition &start, const IPosition &end, const IPosition &incr) |
Read or write the sliced cells given by start,end,incr. More... | |
Private Attributes | |
uInt | tilePixelSize_p |
The (canonical) size of a pixel in a tile. More... | |
uInt | localPixelSize_p |
The local size of a pixel. More... | |
uInt | convPixelSize_p |
The multiplication factor for a conversion operation. More... | |
Bool | mustConvert_p |
Is a conversion necessary? More... | |
uInt | colnr_p |
The column sequence number. More... | |
Conversion::ValueFunction * | readFunc_p |
The conversion function needed when reading. More... | |
Conversion::ValueFunction * | writeFunc_p |
The conversion function needed when writing. 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... | |
Protected Member Functions inherited from casacore::TSMColumn | |
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 | 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 | 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 inherited from casacore::TSMColumn | |
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... | |
A data column in Tiled Storage Manager.
Internal
TSMDataColumn handles a data column for a Tiled Storage Manager.
TSMDataColumn is used by TiledStMan to handle the access to a table column containing data of a tiled hypercube axis. The data in a cell can be a scalar or an array (depending on its definition in the table column description). The shapes of the coordinates and the data are related. Therefore the function setShape checks if the data shape matches the coordinates shape.
The data are held in a TSMCube object. The row number determines which TSMCube object has to be accessed.
The creation of a TSMDataColumn object is done by a TSMColumn object. This process is described in more detail in the class TSMColumn.
Handling data columns in the Tiled Storage Manager is different from other columns.
Definition at line 96 of file TSMDataColumn.h.
casacore::TSMDataColumn::TSMDataColumn | ( | const TSMColumn & | column | ) |
Create a data column from the given column.
|
virtual |
Frees up the storage.
|
private |
Forbid copy constructor.
|
private |
Read or write a data cell in the cube.
A cell can contain a scalar or an array (depending on the column definition).
|
private |
Read or write a slice of a data cell in the cube.
|
private |
Read or write an entire column.
This can only be done if one hypercube is used.
|
private |
Read or write some cells in a column.
It tries to optimize by looking for regular row strides.
|
private |
Read or write a slice from the entire column.
This can only be done if one hypercube is used.
|
private |
Read or write some cells in a column.
It tries to optimize by looking for regular row strides.
|
private |
Read or write the full cells given by start,end,incr.
|
private |
Read or write the sliced cells given by start,end,incr.
|
virtual |
Changing array shapes for non-FixedShape columns when the parent tiled storage manager can handle it.
Reimplemented from casacore::DataManagerColumn.
Determine the length to store the given number of pixels.
|
virtual |
Get the array values in some cells of the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumnCells function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Get all array values in the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function).
Reimplemented from casacore::DataManagerColumn.
Get the array value in the given row.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn get function).
Reimplemented from casacore::DataManagerColumn.
Get a scalar value in the given row.
The buffer pointed to by dataPtr has to have the correct length (which is guaranteed by the Scalar/ArrayColumn get function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Get a section from some cells of the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumnCells function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Get a section of all arrays in the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
inline |
Get the function to convert from external to local format (or vice-versa if writeFlag=True
).
Definition at line 257 of file TSMDataColumn.h.
References readFunc_p, and writeFunc_p.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Get nr of elements in a value to convert (usually 1, but 2 for Complex).
Definition at line 261 of file TSMDataColumn.h.
References convPixelSize_p.
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Get into a section of the array in the given row.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn putSlice function).
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Does a conversion (byte swap) needs to be done?
Definition at line 265 of file TSMDataColumn.h.
References mustConvert_p.
Is the value shape defined in the given row?
Reimplemented from casacore::DataManagerColumn.
|
inline |
Return the size of a pixel in the tile in local format.
Definition at line 342 of file TSMDataColumn.h.
References localPixelSize_p.
|
private |
Forbid assignment.
|
virtual |
Put the array values into some cells of the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Put all array values in the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function).
Reimplemented from casacore::DataManagerColumn.
Put the array value into the given row.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn put function).
Reimplemented from casacore::DataManagerColumn.
Put a scalar value into the given row.
The buffer pointed to by dataPtr has to have the correct length (which is guaranteed by the Scalar/ArrayColumn put function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Put into a section of some cells of the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn putColumnSlice function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Put a section into all array values in the column.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function).
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Put into a section of the array in the given row.
The array given in data
has to have the correct shape (which is guaranteed by the ArrayColumn putSlice function).
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Read the data of the column from a tile.
(I.e. convert from external to local format).
Definition at line 350 of file TSMDataColumn.h.
References convPixelSize_p, and readFunc_p.
|
inline |
Set the shape of the data array in the given row.
It will check if it matches already defined data and coordinates shapes. It will define undefined data and coordinates shapes.
Reimplemented from casacore::DataManagerColumn.
|
virtual |
Set the shape and tile shape of the array in the given row.
It will check if it matches already defined data and coordinates shapes. It will define undefined data and coordinates shapes. The tile shape is adjusted to the array shape (size 0 gets set to 1; size > cubesize gets set to the cubesize).
Reimplemented from casacore::DataManagerColumn.
Get the shape of the item in the given row.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Return the size of a pixel in the tile in external format.
Definition at line 338 of file TSMDataColumn.h.
References tilePixelSize_p.
Get the tile shape of the item in the given row.
Reimplemented from casacore::DataManagerColumn.
|
inline |
Write the data of the column into a tile.
(I.e. convert from local to external format).
Definition at line 355 of file TSMDataColumn.h.
References convPixelSize_p, and writeFunc_p.
|
private |
The column sequence number.
Definition at line 279 of file TSMDataColumn.h.
Referenced by setColumnNumber().
|
private |
The multiplication factor for a conversion operation.
This is the pixel size when a memcpy can be used, otherwise it is 1.
Definition at line 275 of file TSMDataColumn.h.
Referenced by getNrConvert(), readTile(), and writeTile().
|
private |
The local size of a pixel.
Definition at line 272 of file TSMDataColumn.h.
Referenced by localPixelSize().
|
private |
Is a conversion necessary?
Definition at line 277 of file TSMDataColumn.h.
Referenced by isConversionNeeded().
|
private |
The conversion function needed when reading.
Definition at line 281 of file TSMDataColumn.h.
Referenced by getConvertFunction(), and readTile().
|
private |
The (canonical) size of a pixel in a tile.
Definition at line 270 of file TSMDataColumn.h.
Referenced by tilePixelSize().
|
private |
The conversion function needed when writing.
Definition at line 283 of file TSMDataColumn.h.
Referenced by getConvertFunction(), and writeTile().