casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
casa::TSMColumn Class Reference

A column in the Tiled Storage Manager. More...

#include <TSMColumn.h>

Inheritance diagram for casa::TSMColumn:
casa::StManColumn casa::DataManagerColumn casa::TSMCoordColumn casa::TSMDataColumn casa::TSMIdColumn

List of all members.

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 StringcolumnName () 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 IPositionshapeColumn () const
 Get the fixed shape of the column.
TSMDataColumnmakeDataColumn ()
 Make a TSM data column object.
TSMCoordColumnmakeCoordColumn (uInt axesNumber)
 Make a TSM coordinate column object.
TSMIdColumnmakeIdColumn ()
 Make a TSM id column object.
TSMColumnunlink ()
 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

TiledStManstmanPtr_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.
TSMColumncolPtr_p
 The specialized column object (i.e.

Private Member Functions

TSMColumnoperator= (const TSMColumn &)
 Forbid assignment.

Detailed Description

A column in the Tiled Storage Manager.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Etymology

TSMColumn handles a column for the Tiled Storage Manager.

Synopsis

TSMColumn serves 2 purposes:

  1. It is the initial object for all columns in TiledStMan.
  2. It serves as a base class for the specialized TiledStMan column classes dealing with data, coordinates and id values.

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.

Motivation

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.


Constructor & Destructor Documentation

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.


Member Function Documentation

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.

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.

TSMColumn& casa::TSMColumn::operator= ( const TSMColumn ) [private]

Forbid assignment.

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.


Member Data Documentation

The specialized column object (i.e.

data, coordinate or id).

Definition at line 148 of file TSMColumn.h.

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.

The name of the column.

Definition at line 144 of file TSMColumn.h.

Referenced by columnName().

The storage manager.

Definition at line 140 of file TSMColumn.h.


The documentation for this class was generated from the following file: