VirtScaCol.h

Classes

VirtualScalarColumn -- Templated base class for virtual scalar column (full description)

class VirtualScalarColumn : public DataManagerColumn

Interface

Public Members
VirtualScalarColumn()
virtual ~VirtualScalarColumn()
int dataType() const
String dataTypeId() const
virtual Bool isWritable() const
Protected Members
Bool canAccessScalarColumn (Bool& reask) const
virtual void get (uInt rownr, T& data) = 0
virtual void put (uInt rownr, const T& data)
virtual void getScalarColumn (Vector<T>& data)
virtual void putScalarColumn (const Vector<T>& data)
virtual uInt getBlock (uInt rownr, uInt nrmax, T* dataPtr)
virtual void putBlock (uInt rownr, uInt nrmax, const T* dataPtr)
Private Members
void getBoolV (uInt rownr, Bool* dataPtr)
void getuCharV (uInt rownr, uChar* dataPtr)
void getShortV (uInt rownr, Short* dataPtr)
void getuShortV (uInt rownr, uShort* dataPtr)
void getIntV (uInt rownr, Int* dataPtr)
void getuIntV (uInt rownr, uInt* dataPtr)
void getfloatV (uInt rownr, float* dataPtr)
void getdoubleV (uInt rownr, double* dataPtr)
void getComplexV (uInt rownr, Complex* dataPtr)
void getDComplexV (uInt rownr, DComplex* dataPtr)
void getStringV (uInt rownr, String* dataPtr)
void getOtherV (uInt rownr, void* dataPtr)
void putBoolV (uInt rownr, const Bool* dataPtr)
void putuCharV (uInt rownr, const uChar* dataPtr)
void putShortV (uInt rownr, const Short* dataPtr)
void putuShortV (uInt rownr, const uShort* dataPtr)
void putIntV (uInt rownr, const Int* dataPtr)
void putuIntV (uInt rownr, const uInt* dataPtr)
void putfloatV (uInt rownr, const float* dataPtr)
void putdoubleV (uInt rownr, const double* dataPtr)
void putComplexV (uInt rownr, const Complex* dataPtr)
void putDComplexV (uInt rownr, const DComplex* dataPtr)
void putStringV (uInt rownr, const String* dataPtr)
void putOtherV (uInt rownr, const void* dataPtr)
void getScalarColumnV (void* dataPtr)
void putScalarColumnV (const void* dataPtr)
uInt getBlockV (uInt rownr, uInt nrmax, void* dataPtr)
void putBlockV (uInt rownr, uInt nrmax, const void* dataPtr)
VirtualScalarColumn (const VirtualScalarColumn<T>&)
VirtualScalarColumn<T>& operator= (const VirtualScalarColumn<T>&)

Description

Review Status

Reviewed By:
Gareth Hunt
Date Reviewed:
94Nov17

Prerequisite

Etymology

VirtualScalarColumn handles a virtual column containing a scalar.

Synopsis

VirtualScalarColumn is the abstract base class to handle a scalar column for a virtual column engine. It is derived from DataManagerColumn and reimplements some virtual functions to make life easier for the derived classes. It does the following:

Motivation

This class reimplements some virtual functions implemented by DataManagerColumn and types the data argument. In that way they are easier to implement in derived classes. Furthermore they allow default implementations.

Template Type Argument Requirements (T)

To Do

Member Description

VirtualScalarColumn()

Create a column.

virtual ~VirtualScalarColumn()

Frees up the storage.

int dataType() const

Return the data type of the column.

String dataTypeId() const

Return the data type Id of the column.

virtual Bool isWritable() const

By default no data can be put in a virtual column.

Bool canAccessScalarColumn (Bool& reask) const

The class can handle a get/putScalarColumn.

virtual void get (uInt rownr, T& data) = 0

Get the scalar value in the given row.

virtual void put (uInt rownr, const T& data)

Put the scalar value into the given row. The default implementation throws an exception.

virtual void getScalarColumn (Vector<T>& data)

Get all scalar values in the column. The argument dataPtr is in fact a Vector*, but a void* is needed to be generic. The vector pointed to by dataPtr has to have the correct length (which is guaranteed by the ScalarColumn getColumn function).

virtual void putScalarColumn (const Vector<T>& data)

Put all scalar values in the column. The argument dataPtr is in fact a const Vector*, but a const void* is needed to be generic. The vector pointed to by dataPtr has to have the correct length (which is guaranteed by the ScalarColumn putColumn function).

virtual uInt getBlock (uInt rownr, uInt nrmax, T* dataPtr)

Get scalars from the given row on with a maximum of nrmax values. It returns the actual number of values got. This can be used to get an entire column of scalars or to get a part of a column (for a cache for example). The argument dataPtr is in fact a T*, but a void* is needed to be generic. It must have length nrmax.

virtual void putBlock (uInt rownr, uInt nrmax, const T* dataPtr)

Put nrmax scalars from the given row on. It returns the actual number of values put. This can be used to put an entire column of scalars or to put a part of a column (for a cache for example). The argument dataPtr is in fact a const T*, but a const void* is needed to be generic. It must have length nrmax.

void getOtherV (uInt rownr, void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Get the scalar value in the given row.

This function is the get for all non-standard data types.

void getBoolV (uInt rownr, Bool* dataPtr)
void getuCharV (uInt rownr, uChar* dataPtr)
void getShortV (uInt rownr, Short* dataPtr)
void getuShortV (uInt rownr, uShort* dataPtr)
void getIntV (uInt rownr, Int* dataPtr)
void getuIntV (uInt rownr, uInt* dataPtr)
void getfloatV (uInt rownr, float* dataPtr)
void getdoubleV (uInt rownr, double* dataPtr)
void getComplexV (uInt rownr, Complex* dataPtr)
void getDComplexV (uInt rownr, DComplex* dataPtr)
void getStringV (uInt rownr, String* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Get the scalar value in the given row.

void putOtherV (uInt rownr, const void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Put the scalar value into the given row.

This function is the put for all non-standard data types.

void putBoolV (uInt rownr, const Bool* dataPtr)
void putuCharV (uInt rownr, const uChar* dataPtr)
void putShortV (uInt rownr, const Short* dataPtr)
void putuShortV (uInt rownr, const uShort* dataPtr)
void putIntV (uInt rownr, const Int* dataPtr)
void putuIntV (uInt rownr, const uInt* dataPtr)
void putfloatV (uInt rownr, const float* dataPtr)
void putdoubleV (uInt rownr, const double* dataPtr)
void putComplexV (uInt rownr, const Complex* dataPtr)
void putDComplexV (uInt rownr, const DComplex* dataPtr)
void putStringV (uInt rownr, const String* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Put the scalar value into the given row.

void getScalarColumnV (void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Get all scalar values in the column.

void putScalarColumnV (const void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Put all scalar values in the column.

uInt getBlockV (uInt rownr, uInt nrmax, void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Get scalars from the given row on with a maximum of nrmax values.

void putBlockV (uInt rownr, uInt nrmax, const void* dataPtr)

Implement the virtual functions defined in DataManagerColumn. Put nrmax scalars from the given row on.

VirtualScalarColumn (const VirtualScalarColumn<T>&)

The object cannot be copied.

VirtualScalarColumn<T>& operator= (const VirtualScalarColumn<T>&)

The object cannot be assigned to.