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. | |
virtual | ~TSMColumn () |
Frees up the storage. | |
const String & | columnName () const |
Get the name of the column. | |
virtual int | dataType () const |
Return the data type of the column. | |
void | setShapeColumn (const IPosition &shape) |
Set the fixed shape of the column. | |
const IPosition & | shapeColumn () const |
Get the fixed shape of the column. | |
TSMDataColumn * | makeDataColumn () |
Make a TSM data column object. | |
TSMCoordColumn * | makeCoordColumn (uInt axesNumber) |
Make a TSM coordinate column object. | |
TSMIdColumn * | makeIdColumn () |
Make a TSM id column object. | |
TSMColumn * | unlink () |
Unlink the underlying column. | |
Protected Member Functions | |
TSMColumn (const TSMColumn &that) | |
The copy constructor can only be used to copy a derived class. | |
Protected Attributes | |
TiledStMan * | stmanPtr_p |
The storage manager. | |
int | dtype_p |
The data type of the data (as defined in DataType.h). | |
String | name_p |
The name of the column. | |
IPosition | columnShape_p |
The fixed shape of the column. | |
TSMColumn * | colPtr_p |
The specialized column object (i.e. | |
Private Member Functions | |
TSMColumn & | operator= (const TSMColumn &) |
Forbid assignment. |
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 casacore::TSMColumn::~TSMColumn | ( | ) | [virtual] |
Frees up the storage.
casacore::TSMColumn::TSMColumn | ( | const TSMColumn & | that | ) | [protected] |
The copy constructor can only be used to copy a derived class.
const String & casacore::TSMColumn::columnName | ( | ) | const [inline] |
Get the name of the column.
Reimplemented from casacore::DataManagerColumn.
Definition at line 159 of file TSMColumn.h.
References name_p.
virtual int casacore::TSMColumn::dataType | ( | ) | const [virtual] |
Return the data type of the column.
Reimplemented from casacore::StManColumn.
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.
Forbid assignment.
Reimplemented from casacore::StManColumn.
Reimplemented in casacore::TSMCoordColumn, casacore::TSMDataColumn, and casacore::TSMIdColumn.
void casacore::TSMColumn::setShapeColumn | ( | const IPosition & | shape | ) | [virtual] |
Set the fixed shape of the column.
Reimplemented from casacore::DataManagerColumn.
const IPosition & casacore::TSMColumn::shapeColumn | ( | ) | const [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.
TSMColumn* casacore::TSMColumn::colPtr_p [protected] |
The specialized column object (i.e.
data, coordinate or id).
Definition at line 148 of file TSMColumn.h.
IPosition casacore::TSMColumn::columnShape_p [protected] |
The fixed shape of the column.
Definition at line 146 of file TSMColumn.h.
Referenced by shapeColumn().
int casacore::TSMColumn::dtype_p [protected] |
The data type of the data (as defined in DataType.h).
Reimplemented from casacore::StManColumn.
Definition at line 142 of file TSMColumn.h.
String casacore::TSMColumn::name_p [protected] |
TiledStMan* casacore::TSMColumn::stmanPtr_p [protected] |
The storage manager.
Definition at line 140 of file TSMColumn.h.