TSMColumn.h

Classes

TSMColumn -- A column in the Tiled Storage Manager (full description)

class TSMColumn : public StManColumn

Interface

Public Members
TSMColumn (TiledStMan* stman, int dataType, const String& columnName)
virtual ~TSMColumn()
const String& columnName() const
virtual int dataType() const
void setShapeColumn (const IPosition& shape)
const IPosition& shapeColumn() const
TSMDataColumn* makeDataColumn()
TSMCoordColumn* makeCoordColumn (uInt axesNumber)
TSMIdColumn* makeIdColumn()
TSMColumn* unlink()
Protected Members
TSMColumn (const TSMColumn& that)
Private Members
TSMColumn& operator= (const TSMColumn&)

Description

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.

Member Description

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 ~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. Add the pixel length to the total data pixel length.

TSMCoordColumn* makeCoordColumn (uInt axesNumber)

Make a TSM coordinate column object.

TSMIdColumn* makeIdColumn()

Make a TSM id column object.

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 (const TSMColumn& that)

The copy constructor can only be used to copy a derived class.

TSMColumn& operator= (const TSMColumn&)

Forbid assignment.