casa
$Rev:20696$
|
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.
casa::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 casa::TSMColumn::~TSMColumn | ( | ) | [virtual] |
Frees up the storage.
casa::TSMColumn::TSMColumn | ( | const TSMColumn & | that | ) | [protected] |
The copy constructor can only be used to copy a derived class.
const String & casa::TSMColumn::columnName | ( | ) | const [inline] |
Get the name of the column.
Reimplemented from casa::DataManagerColumn.
Definition at line 159 of file TSMColumn.h.
References name_p.
virtual int casa::TSMColumn::dataType | ( | ) | const [virtual] |
Return the data type of the column.
Reimplemented from casa::StManColumn.
TSMCoordColumn* casa::TSMColumn::makeCoordColumn | ( | uInt | axesNumber | ) |
Make a TSM coordinate column object.
Make a TSM data column object.
Add the pixel length to the total data pixel length.
Make a TSM id column object.
void casa::TSMColumn::setShapeColumn | ( | const IPosition & | shape | ) | [virtual] |
Set the fixed shape of the column.
Reimplemented from casa::DataManagerColumn.
const IPosition & casa::TSMColumn::shapeColumn | ( | ) | const [inline] |
Get the fixed shape of the column.
Definition at line 162 of file TSMColumn.h.
References columnShape_p.
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* casa::TSMColumn::colPtr_p [protected] |
The specialized column object (i.e.
data, coordinate or id).
Definition at line 148 of file TSMColumn.h.
IPosition casa::TSMColumn::columnShape_p [protected] |
The fixed shape of the column.
Definition at line 146 of file TSMColumn.h.
Referenced by shapeColumn().
int casa::TSMColumn::dtype_p [protected] |
The data type of the data (as defined in DataType.h).
Reimplemented from casa::StManColumn.
Definition at line 142 of file TSMColumn.h.
String casa::TSMColumn::name_p [protected] |
TiledStMan* casa::TSMColumn::stmanPtr_p [protected] |
The storage manager.
Definition at line 140 of file TSMColumn.h.