casacore::VirtualScalarColumn< T > Class Template Reference

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

#include <VirtScaCol.h>

Inheritance diagram for casacore::VirtualScalarColumn< T >:
casacore::DataManagerColumn casacore::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 casacore::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>
casacore::VirtualScalarColumn< T >::VirtualScalarColumn (  )  [inline]

Create a column.

Definition at line 131 of file VirtScaCol.h.

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

Frees up the storage.

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

The object cannot be copied.


Member Function Documentation

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

The class can handle a get/putScalarColumn.

Reimplemented from casacore::DataManagerColumn.

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

Return the data type of the column.

Implements casacore::DataManagerColumn.

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

Return the data type Id of the column.

Reimplemented from casacore::DataManagerColumn.

template<class T>
virtual void casacore::VirtualScalarColumn< T >::get ( uInt  rownr,
T &  data 
) [pure virtual]
template<class T>
virtual uInt casacore::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 casacore::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 casacore::DataManagerColumn.

template<class T>
void casacore::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 casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

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

Reimplemented from casacore::DataManagerColumn.

template<class T>
virtual void casacore::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 casacore::VirtualScalarColumn< T >::getScalarColumnV ( void *  dataPtr  )  [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Get all scalar values in the column.

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

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

Reimplemented from casacore::DataManagerColumn.

Reimplemented in casacore::VSCEngine< T >.

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

The object cannot be assigned to.

Reimplemented from casacore::DataManagerColumn.

Reimplemented in casacore::VSCEngine< T >.

template<class T>
virtual void casacore::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 casacore::VirtScaCol_global_functions_getVirtualScalarColumn::putVirtualScalarColumn().

template<class T>
virtual void casacore::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 casacore::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 casacore::DataManagerColumn.

template<class T>
void casacore::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 casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

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

Reimplemented from casacore::DataManagerColumn.

template<class T>
virtual void casacore::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 casacore::VirtualScalarColumn< T >::putScalarColumnV ( const void *  dataPtr  )  [private, virtual]

Implement the virtual functions defined in DataManagerColumn.

Put all scalar values in the column.

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.

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

Reimplemented from casacore::DataManagerColumn.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1