casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions | Private Member Functions
casa::VirtualScalarColumn< T > Class Template Reference

Templated base class for virtual scalar column. More...

#include <VirtScaCol.h>

Inheritance diagram for casa::VirtualScalarColumn< T >:
casa::DataManagerColumn casa::VSCEngine< T >

List of all members.

Public Member Functions

 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.
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.

Protected Member Functions

Bool canAccessScalarColumn (Bool &reask) const
 The class can handle a get/putScalarColumn.
virtual void getScalarColumn (Vector< T > &data)
 Get all scalar values in the column.
virtual void putScalarColumn (const Vector< T > &data)
 Put all scalar values in the column.
virtual uInt getBlock (uInt rownr, uInt nrmax, T *dataPtr)
 Get scalars from the given row on with a maximum of nrmax values.
virtual void putBlock (uInt rownr, uInt nrmax, const T *dataPtr)
 Put nrmax scalars from the given row on.

Private Member Functions

void getBoolV (uInt rownr, Bool *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
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)
 This function is the get for all non-standard data types.
void putBoolV (uInt rownr, const Bool *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
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)
 This function is the put for all non-standard data types.
void getScalarColumnV (void *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
void putScalarColumnV (const void *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
uInt getBlockV (uInt rownr, uInt nrmax, void *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
void putBlockV (uInt rownr, uInt nrmax, const void *dataPtr)
 Implement the virtual functions defined in DataManagerColumn.
 VirtualScalarColumn (const VirtualScalarColumn< T > &)
 The object cannot be copied.
VirtualScalarColumn< T > & operator= (const VirtualScalarColumn< T > &)
 The object cannot be assigned to.

Detailed Description

template<class T>
class casa::VirtualScalarColumn< T >

Templated base class for virtual scalar column.

Intended use:

Internal

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)

Definition at line 126 of file VirtScaCol.h.


Constructor & Destructor Documentation

template<class T>
casa::VirtualScalarColumn< T >::VirtualScalarColumn ( ) [inline]

Create a column.

Definition at line 131 of file VirtScaCol.h.

template<class T>
virtual casa::VirtualScalarColumn< T >::~VirtualScalarColumn ( ) [virtual]

Frees up the storage.

template<class T>
casa::VirtualScalarColumn< T >::VirtualScalarColumn ( const VirtualScalarColumn< T > &  ) [private]

The object cannot be copied.


Member Function Documentation

template<class T>
Bool casa::VirtualScalarColumn< T >::canAccessScalarColumn ( Bool reask) const [protected, virtual]

The class can handle a get/putScalarColumn.

Reimplemented from casa::DataManagerColumn.

template<class T>
int casa::VirtualScalarColumn< T >::dataType ( ) const [virtual]

Return the data type of the column.

Implements casa::DataManagerColumn.

template<class T>
String casa::VirtualScalarColumn< T >::dataTypeId ( ) const [virtual]

Return the data type Id of the column.

Reimplemented from casa::DataManagerColumn.

template<class T>
virtual void casa::VirtualScalarColumn< T >::get ( uInt  rownr,
T &  data 
) [pure virtual]

Get the scalar value in the given row.

Referenced by casa::VirtScaCol_global_functions_getVirtualScalarColumn::getVirtualScalarColumn().

template<class T>
virtual uInt casa::VirtualScalarColumn< T >::getBlock ( uInt  rownr,
uInt  nrmax,
T *  dataPtr 
) [protected, virtual]

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.

template<class T>
uInt casa::VirtualScalarColumn< T >::getBlockV ( uInt  rownr,
uInt  nrmax,
void *  dataPtr 
) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Get scalars from the given row on with a maximum of nrmax values.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getBoolV ( uInt  rownr,
Bool dataPtr 
) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Get the scalar value in the given row.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getComplexV ( uInt  rownr,
Complex *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getDComplexV ( uInt  rownr,
DComplex *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getdoubleV ( uInt  rownr,
double *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getfloatV ( uInt  rownr,
float *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getIntV ( uInt  rownr,
Int dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getOtherV ( uInt  rownr,
void *  dataPtr 
) [private, virtual]

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

Reimplemented from casa::DataManagerColumn.

template<class T>
virtual void casa::VirtualScalarColumn< T >::getScalarColumn ( Vector< T > &  data) [protected, virtual]

Get all scalar values in the column.

The argument dataPtr is in fact a Vector<T>*, 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).

template<class T>
void casa::VirtualScalarColumn< T >::getScalarColumnV ( void *  dataPtr) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Get all scalar values in the column.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getShortV ( uInt  rownr,
Short dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getStringV ( uInt  rownr,
String dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getuCharV ( uInt  rownr,
uChar dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getuIntV ( uInt  rownr,
uInt dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::getuShortV ( uInt  rownr,
uShort dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
virtual Bool casa::VirtualScalarColumn< T >::isWritable ( ) const [virtual]

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

Reimplemented from casa::DataManagerColumn.

Reimplemented in casa::VSCEngine< T >.

template<class T>
VirtualScalarColumn<T>& casa::VirtualScalarColumn< T >::operator= ( const VirtualScalarColumn< T > &  ) [private]

The object cannot be assigned to.

template<class T>
virtual void casa::VirtualScalarColumn< T >::put ( uInt  rownr,
const T &  data 
) [virtual]

Put the scalar value into the given row.

The default implementation throws an exception.

Referenced by casa::VirtScaCol_global_functions_getVirtualScalarColumn::putVirtualScalarColumn().

template<class T>
virtual void casa::VirtualScalarColumn< T >::putBlock ( uInt  rownr,
uInt  nrmax,
const T *  dataPtr 
) [protected, virtual]

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.

template<class T>
void casa::VirtualScalarColumn< T >::putBlockV ( uInt  rownr,
uInt  nrmax,
const void *  dataPtr 
) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Put nrmax scalars from the given row on.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putBoolV ( uInt  rownr,
const Bool dataPtr 
) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Put the scalar value into the given row.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putComplexV ( uInt  rownr,
const Complex *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putDComplexV ( uInt  rownr,
const DComplex *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putdoubleV ( uInt  rownr,
const double *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putfloatV ( uInt  rownr,
const float *  dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putIntV ( uInt  rownr,
const Int dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putOtherV ( uInt  rownr,
const void *  dataPtr 
) [private, virtual]

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

Reimplemented from casa::DataManagerColumn.

template<class T>
virtual void casa::VirtualScalarColumn< T >::putScalarColumn ( const Vector< T > &  data) [protected, virtual]

Put all scalar values in the column.

The argument dataPtr is in fact a const Vector<T>*, 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).

template<class T>
void casa::VirtualScalarColumn< T >::putScalarColumnV ( const void *  dataPtr) [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Put all scalar values in the column.

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putShortV ( uInt  rownr,
const Short dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putStringV ( uInt  rownr,
const String dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putuCharV ( uInt  rownr,
const uChar dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putuIntV ( uInt  rownr,
const uInt dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.

template<class T>
void casa::VirtualScalarColumn< T >::putuShortV ( uInt  rownr,
const uShort dataPtr 
) [private, virtual]

Reimplemented from casa::DataManagerColumn.


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