casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::DataManagerColumn Class Referenceabstract

Abstract base class for a column in a data manager. More...

#include <DataManager.h>

Inheritance diagram for casacore::DataManagerColumn:
casacore::ForwardColumn casacore::StManColumn casacore::VirtualArrayColumn< T > casacore::VirtualScalarColumn< T > casacore::VirtualTaQLColumn casacore::VirtualArrayColumn< Bool > casacore::VirtualArrayColumn< Complex > casacore::VirtualArrayColumn< Double > casacore::VirtualArrayColumn< Float > casacore::VirtualArrayColumn< VirtualType > casacore::VirtualScalarColumn< Double >

Public Member Functions

 DataManagerColumn ()
 Create a column. More...
 
virtual ~DataManagerColumn ()
 Frees up the storage. More...
 
void setIsFixedShape (Bool isFixedShape)
 Set the isFixedShape flag. More...
 
Bool isFixedShape () const
 Is this a fixed shape column? More...
 
virtual int dataType () const =0
 Get the data type of the column as defined in DataType.h. More...
 
virtual String dataTypeId () const
 Get the data type id of the column for dataType==TpOther. More...
 
virtual Bool isWritable () const
 Test if data can be put into this column. More...
 
virtual void setMaxLength (uInt maxLength)
 Set the maximum length of the value (can be used for strings). More...
 
void setFixedShapeColumn (const IPosition &shape)
 Set the shape of all (fixed-shaped) arrays in the column. More...
 
virtual void setShape (uInt rownr, const IPosition &shape)
 Set the shape of an (variable-shaped) array in the given row. More...
 
virtual void setShapeTiled (uInt rownr, const IPosition &shape, const IPosition &tileShape)
 Set the shape and tile shape of an (variable-shaped) array in the given row. More...
 
virtual Bool isShapeDefined (uInt rownr)
 Is the value shape defined in the given row? By default it returns True. More...
 
virtual uInt ndim (uInt rownr)
 Get the dimensionality of the item in the given row. More...
 
virtual IPosition shape (uInt rownr)
 Get the shape of the item in the given row. More...
 
virtual IPosition tileShape (uInt rownr)
 Get the tile shape of the item in the given row. More...
 
virtual Bool canChangeShape () const
 Can the data manager handle chaging the shape of an existing array? Default is no. More...
 
virtual Bool canAccessScalarColumn (Bool &reask) const
 Can the column data manager handle access to a scalar column? If not, the caller should access the column by looping through all cells in the column. More...
 
virtual Bool canAccessScalarColumnCells (Bool &reask) const
 Can the column data manager handle access to a clooection of cells in a scalar column? If not, the caller should access the column cells by looping through the cells in the column. More...
 
virtual Bool canAccessArrayColumn (Bool &reask) const
 Can the column data manager handle access to a scalar column? If not, the caller should access the column by looping through all cells in the column. More...
 
virtual Bool canAccessArrayColumnCells (Bool &reask) const
 Can the column data manager handle access to a collection of cells in an array column? If not, the caller should access the column cells by looping through the cells in the column. More...
 
virtual Bool canAccessSlice (Bool &reask) const
 Can the column data manager handle access to a cell slice? If not, the caller should do slicing itself (by accessing the entire array and slicing it). More...
 
virtual Bool canAccessColumnSlice (Bool &reask) const
 Can the column data manager handle access to a column slice? If not, the caller should access the column slice by looping through all cell slices in the column. More...
 
ColumnCachecolumnCache ()
 Get access to the ColumnCache object. More...
 
const ColumnCachecolumnCachePtr () const
 
void get (uInt rownr, Bool *dataPtr)
 Get the scalar value in the given row. More...
 
void get (uInt rownr, uChar *dataPtr)
 
void get (uInt rownr, Short *dataPtr)
 
void get (uInt rownr, uShort *dataPtr)
 
void get (uInt rownr, Int *dataPtr)
 
void get (uInt rownr, uInt *dataPtr)
 
void get (uInt rownr, Int64 *dataPtr)
 
void get (uInt rownr, float *dataPtr)
 
void get (uInt rownr, double *dataPtr)
 
void get (uInt rownr, Complex *dataPtr)
 
void get (uInt rownr, DComplex *dataPtr)
 
void get (uInt rownr, String *dataPtr)
 
void get (uInt rownr, void *dataPtr)
 This function is the get for all non-standard data types. More...
 
void put (uInt rownr, const Bool *dataPtr)
 Put the scalar value into the given row. More...
 
void put (uInt rownr, const uChar *dataPtr)
 
void put (uInt rownr, const Short *dataPtr)
 
void put (uInt rownr, const uShort *dataPtr)
 
void put (uInt rownr, const Int *dataPtr)
 
void put (uInt rownr, const uInt *dataPtr)
 
void put (uInt rownr, const Int64 *dataPtr)
 
void put (uInt rownr, const float *dataPtr)
 
void put (uInt rownr, const double *dataPtr)
 
void put (uInt rownr, const Complex *dataPtr)
 
void put (uInt rownr, const DComplex *dataPtr)
 
void put (uInt rownr, const String *dataPtr)
 
void put (uInt rownr, const void *dataPtr)
 This function is the put for all non-standard data types. More...
 
virtual void getScalarColumnV (void *dataPtr)
 Get all scalar values in the column. More...
 
virtual void putScalarColumnV (const void *dataPtr)
 Put all scalar values in the column. More...
 
virtual void getScalarColumnCellsV (const RefRows &rownrs, void *dataPtr)
 Get some scalar values in the column. More...
 
virtual void putScalarColumnCellsV (const RefRows &rownrs, const void *dataPtr)
 Put some scalar values in the column. More...
 
virtual uInt getBlockV (uInt rownr, uInt nrmax, void *dataPtr)
 Get scalars from the given row on with a maximum of nrmax values. More...
 
virtual void putBlockV (uInt rownr, uInt nrmax, const void *dataPtr)
 Put nrmax scalars from the given row on. More...
 
virtual void getArrayV (uInt rownr, void *dataPtr)
 Get the array value in the given row. More...
 
virtual void putArrayV (uInt rownr, const void *dataPtr)
 Put the array value into the given row. More...
 
virtual void getArrayColumnV (void *dataPtr)
 Get all array values in the column. More...
 
virtual void putArrayColumnV (const void *dataPtr)
 Put all array values in the column. More...
 
virtual void getArrayColumnCellsV (const RefRows &rownrs, void *dataPtr)
 Get some array values in the column. More...
 
virtual void putArrayColumnCellsV (const RefRows &rownrs, const void *dataPtr)
 Put some array values in the column. More...
 
virtual void getSliceV (uInt rownr, const Slicer &slicer, void *dataPtr)
 Get a section of the array in the given row. More...
 
virtual void putSliceV (uInt rownr, const Slicer &slicer, const void *dataPtr)
 Put into a section of the array in the given row. More...
 
virtual void getColumnSliceV (const Slicer &slicer, void *dataPtr)
 Get a section of all arrays in the column. More...
 
virtual void putColumnSliceV (const Slicer &slicer, const void *dataPtr)
 Put into a section of all arrays in the column. More...
 
virtual void getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, void *dataPtr)
 Get a section of some arrays in the column. More...
 
virtual void putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const void *dataPtr)
 Put into a section of some arrays in the column. More...
 
void throwGet () const
 Throw an "invalid operation" exception for the default implementation of get. More...
 
void throwPut () const
 Throw an "invalid operation" exception for the default implementation of put. More...
 
void setColumnName (const String &colName)
 Set the column name. More...
 
const StringcolumnName () const
 Get rhe column name. More...
 

Protected Member Functions

virtual void getBoolV (uInt rownr, Bool *dataPtr)
 Get the scalar value in the given row. More...
 
virtual void getuCharV (uInt rownr, uChar *dataPtr)
 
virtual void getShortV (uInt rownr, Short *dataPtr)
 
virtual void getuShortV (uInt rownr, uShort *dataPtr)
 
virtual void getIntV (uInt rownr, Int *dataPtr)
 
virtual void getuIntV (uInt rownr, uInt *dataPtr)
 
virtual void getInt64V (uInt rownr, Int64 *dataPtr)
 
virtual void getfloatV (uInt rownr, float *dataPtr)
 
virtual void getdoubleV (uInt rownr, double *dataPtr)
 
virtual void getComplexV (uInt rownr, Complex *dataPtr)
 
virtual void getDComplexV (uInt rownr, DComplex *dataPtr)
 
virtual void getStringV (uInt rownr, String *dataPtr)
 
virtual void getOtherV (uInt rownr, void *dataPtr)
 This function is the get for all non-standard data types. More...
 
virtual void putBoolV (uInt rownr, const Bool *dataPtr)
 Put the scalar value into the given row. More...
 
virtual void putuCharV (uInt rownr, const uChar *dataPtr)
 
virtual void putShortV (uInt rownr, const Short *dataPtr)
 
virtual void putuShortV (uInt rownr, const uShort *dataPtr)
 
virtual void putIntV (uInt rownr, const Int *dataPtr)
 
virtual void putuIntV (uInt rownr, const uInt *dataPtr)
 
virtual void putInt64V (uInt rownr, const Int64 *dataPtr)
 
virtual void putfloatV (uInt rownr, const float *dataPtr)
 
virtual void putdoubleV (uInt rownr, const double *dataPtr)
 
virtual void putComplexV (uInt rownr, const Complex *dataPtr)
 
virtual void putDComplexV (uInt rownr, const DComplex *dataPtr)
 
virtual void putStringV (uInt rownr, const String *dataPtr)
 
virtual void putOtherV (uInt rownr, const void *dataPtr)
 This function is the put for all non-standard data types. More...
 

Private Member Functions

virtual void setShapeColumn (const IPosition &shape)
 Set the shape of all (fixed-shaped) arrays in the column. More...
 
 DataManagerColumn (const DataManagerColumn &)
 The copy constructor cannot be used for this base class. More...
 
DataManagerColumnoperator= (const DataManagerColumn &)
 Assignment cannot be used for this base class. More...
 
void getScalarColumnBase (ArrayBase &dataPtr)
 The default implementations of get and put functions. More...
 
void putScalarColumnBase (const ArrayBase &dataPtr)
 
void getScalarColumnCellsBase (const RefRows &rownrs, ArrayBase &dataPtr)
 
void putScalarColumnCellsBase (const RefRows &rownrs, const ArrayBase &dataPtr)
 
void getArrayColumnBase (ArrayBase &data)
 
void putArrayColumnBase (const ArrayBase &data)
 
void getArrayColumnCellsBase (const RefRows &rownrs, ArrayBase &data)
 
void putArrayColumnCellsBase (const RefRows &rownrs, const ArrayBase &data)
 
void getSliceBase (uInt rownr, const Slicer &slicer, ArrayBase &data)
 
void putSliceBase (uInt rownr, const Slicer &slicer, const ArrayBase &data)
 
void getColumnSliceBase (const Slicer &slicer, ArrayBase &data)
 
void putColumnSliceBase (const Slicer &slicer, const ArrayBase &data)
 
void getColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
 
void putColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)
 
void getSliceArr (uInt row, const Slicer &section, CountedPtr< ArrayBase > &fullArr, ArrayBase &arr)
 Get a slice from the array in the given row. More...
 
void putSliceArr (uInt row, const Slicer &section, CountedPtr< ArrayBase > &fullArr, const ArrayBase &arr)
 Put a slice into the array in the given row. More...
 

Private Attributes

Bool isFixedShape_p
 
String colName_p
 
ColumnCache colCache_p
 

Detailed Description

Abstract base class for a column in a data manager.

Intended use:

Internal

Review Status

Reviewed By:
Gareth Hunt
Date Reviewed:
94Nov17

Prerequisite

Etymology

DataManagerColumn handles a column for a data manager.

Synopsis

DataManagerColumn is the abstract base class to handle a column in a data manager. Each data manager class must have one or more associated classes derived from DataManagerColumn to handle the columns. For example, storage manager StManAipsIO has columns classes StManColumnAipsIO, StManColumnArrayAipsIO and StManColumnIndArrayAipsIO to handle scalars, direct arrays and indirect arrays, resp.. However, using multiple inheritance it is possible that the derived DataManager and DataManagerColumn classes are the same. This is used in class ScaledArrayEngine<S,T> which represents both the data manager and its column class. It can do that, because the virtual column engine ScaledArrayEngine can handle only one column.

In the synopsis of class DataManager it is described how the (derived) DataManagerColumn objects gets created and deleted.

DataManagerColumn defines various virtual functions to get or put (slices) of data in a column. These functions are called by the table column classes ScalarColumnData and ArrayColumnData. It does not define functions create, open, flush and prepare like those defined in DataManager. It is left to the derived classes to define those as needed and to interact properly with their data manager object.

Motivation

An abstract base class is needed to support multiple data managers in the table system

Definition at line 611 of file DataManager.h.

Constructor & Destructor Documentation

casacore::DataManagerColumn::DataManagerColumn ( )
inline

Create a column.

Definition at line 616 of file DataManager.h.

virtual casacore::DataManagerColumn::~DataManagerColumn ( )
virtual

Frees up the storage.

casacore::DataManagerColumn::DataManagerColumn ( const DataManagerColumn )
private

The copy constructor cannot be used for this base class.

The private declaration of this constructor makes it unusable.

Member Function Documentation

virtual Bool casacore::DataManagerColumn::canAccessArrayColumn ( Bool reask) const
virtual

Can the column data manager handle access to a scalar column? If not, the caller should access the column by looping through all cells in the column.

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::TSMDataColumn, casacore::ForwardColumnIndexedRow, casacore::StManColumnArrayAipsIO, and casacore::MSMDirColumn.

virtual Bool casacore::DataManagerColumn::canAccessArrayColumnCells ( Bool reask) const
virtual

Can the column data manager handle access to a collection of cells in an array column? If not, the caller should access the column cells by looping through the cells in the column.

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::ScaledComplexData< VirtualType, StoredType >, and casacore::StManColumn.

virtual Bool casacore::DataManagerColumn::canAccessColumnSlice ( Bool reask) const
virtual

Can the column data manager handle access to a column slice? If not, the caller should access the column slice by looping through all cell slices in the column.

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::TSMDataColumn, and casacore::ForwardColumnIndexedRow.

virtual Bool casacore::DataManagerColumn::canAccessScalarColumn ( Bool reask) const
virtual

Can the column data manager handle access to a scalar column? If not, the caller should access the column by looping through all cells in the column.

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, casacore::ForwardColumn, casacore::TSMDataColumn, casacore::StManColumn, and casacore::ForwardColumnIndexedRow.

virtual Bool casacore::DataManagerColumn::canAccessScalarColumnCells ( Bool reask) const
virtual

Can the column data manager handle access to a clooection of cells in a scalar column? If not, the caller should access the column cells by looping through the cells in the column.

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::StManColumn.

virtual Bool casacore::DataManagerColumn::canAccessSlice ( Bool reask) const
virtual

Can the column data manager handle access to a cell slice? If not, the caller should do slicing itself (by accessing the entire array and slicing it).

Default is no.
The returned reask switch determines if the information is permanent. False indicates it is permanent; True indicates it will be reasked for the next get/putColumn. By default reask is set to False.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::TSMDataColumn, casacore::ISMIndColumn, casacore::SSMIndColumn, casacore::StManColumnIndArrayAipsIO, casacore::StManColumnArrayAipsIO, casacore::MSMIndColumn, casacore::MSMDirColumn, and casacore::Adios2StManColumn.

virtual Bool casacore::DataManagerColumn::canChangeShape ( ) const
virtual
ColumnCache& casacore::DataManagerColumn::columnCache ( )
inline

Get access to the ColumnCache object.

Definition at line 756 of file DataManager.h.

References colCache_p.

const ColumnCache* casacore::DataManagerColumn::columnCachePtr ( ) const
inline

Definition at line 758 of file DataManager.h.

References colCache_p.

const String& casacore::DataManagerColumn::columnName ( ) const
inline

Get rhe column name.

Definition at line 1003 of file DataManager.h.

References colName_p.

virtual int casacore::DataManagerColumn::dataType ( ) const
pure virtual
virtual String casacore::DataManagerColumn::dataTypeId ( ) const
virtual

Get the data type id of the column for dataType==TpOther.

The default implementation returns an emptry string. This function is required for virtual column engines handling non-standard data types. It is used to check the data type.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::VirtualScalarColumn< T >, and casacore::VirtualScalarColumn< Double >.

void casacore::DataManagerColumn::get ( uInt  rownr,
Bool dataPtr 
)
inline

Get the scalar value in the given row.

These functions are non-virtual and are converted to their virtual getV equivalent to achieve that a derived templated class (like VirtualScalarColumn) does not have to declare and implement all these functions. The compiler complains about hiding virtual functions if you do not declare all virtual functions with the same name in a derived class.

Definition at line 770 of file DataManager.h.

References getBoolV().

void casacore::DataManagerColumn::get ( uInt  rownr,
uChar dataPtr 
)
inline

Definition at line 772 of file DataManager.h.

References getuCharV().

void casacore::DataManagerColumn::get ( uInt  rownr,
Short dataPtr 
)
inline

Definition at line 774 of file DataManager.h.

References getShortV().

void casacore::DataManagerColumn::get ( uInt  rownr,
uShort dataPtr 
)
inline

Definition at line 776 of file DataManager.h.

References getuShortV().

void casacore::DataManagerColumn::get ( uInt  rownr,
Int dataPtr 
)
inline

Definition at line 778 of file DataManager.h.

References getIntV().

void casacore::DataManagerColumn::get ( uInt  rownr,
uInt dataPtr 
)
inline

Definition at line 780 of file DataManager.h.

References getuIntV().

void casacore::DataManagerColumn::get ( uInt  rownr,
Int64 dataPtr 
)
inline

Definition at line 782 of file DataManager.h.

References getInt64V().

void casacore::DataManagerColumn::get ( uInt  rownr,
float *  dataPtr 
)
inline

Definition at line 784 of file DataManager.h.

References getfloatV().

void casacore::DataManagerColumn::get ( uInt  rownr,
double *  dataPtr 
)
inline

Definition at line 786 of file DataManager.h.

References getdoubleV().

void casacore::DataManagerColumn::get ( uInt  rownr,
Complex *  dataPtr 
)
inline

Definition at line 788 of file DataManager.h.

References getComplexV().

void casacore::DataManagerColumn::get ( uInt  rownr,
DComplex *  dataPtr 
)
inline

Definition at line 790 of file DataManager.h.

References getDComplexV().

void casacore::DataManagerColumn::get ( uInt  rownr,
String dataPtr 
)
inline

Definition at line 792 of file DataManager.h.

References getStringV().

void casacore::DataManagerColumn::get ( uInt  rownr,
void *  dataPtr 
)
inline

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

Definition at line 795 of file DataManager.h.

References getOtherV().

void casacore::DataManagerColumn::getArrayColumnBase ( ArrayBase data)
private
void casacore::DataManagerColumn::getArrayColumnCellsBase ( const RefRows rownrs,
ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::getArrayColumnCellsV ( const RefRows rownrs,
void *  dataPtr 
)
virtual

Get some array values in the column.

The argument dataPtr is in fact an Array<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 ArrayColumn getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::Adios2StManColumnT< T >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getArrayColumnV ( void *  dataPtr)
virtual

Get all array values in the column.

The argument dataPtr is in fact an Array<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 ArrayColumn getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::Adios2StManColumnT< T >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getArrayV ( uInt  rownr,
void *  dataPtr 
)
virtual

Get the array value in the given row.

The argument dataPtr is in fact an Array<T>*, but a void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn get function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::VirtualTaQLColumn, casacore::Adios2StManColumnT< T >, casacore::StManColumn, and casacore::ForwardColumnIndexedRow.

virtual uInt casacore::DataManagerColumn::getBlockV ( uInt  rownr,
uInt  nrmax,
void *  dataPtr 
)
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. The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getBoolV ( uInt  rownr,
Bool dataPtr 
)
protectedvirtual
void casacore::DataManagerColumn::getColumnSliceBase ( const Slicer slicer,
ArrayBase data 
)
private
void casacore::DataManagerColumn::getColumnSliceCellsBase ( const RefRows rownrs,
const Slicer slicer,
ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::getColumnSliceCellsV ( const RefRows rownrs,
const Slicer slicer,
void *  dataPtr 
)
virtual

Get a section of some arrays in the column.

The argument dataPtr is in fact an Array<T>*, but a void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getColumnSliceV ( const Slicer slicer,
void *  dataPtr 
)
virtual

Get a section of all arrays in the column.

The argument dataPtr is in fact an Array<T>*, but a void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::Adios2StManColumnT< T >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getComplexV ( uInt  rownr,
Complex *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getDComplexV ( uInt  rownr,
DComplex *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getdoubleV ( uInt  rownr,
double *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getfloatV ( uInt  rownr,
float *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getInt64V ( uInt  rownr,
Int64 dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getIntV ( uInt  rownr,
Int dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getOtherV ( uInt  rownr,
void *  dataPtr 
)
protectedvirtual

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

Reimplemented in casacore::ForwardColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::ForwardColumnIndexedRow.

Referenced by get().

void casacore::DataManagerColumn::getScalarColumnBase ( ArrayBase dataPtr)
private

The default implementations of get and put functions.

void casacore::DataManagerColumn::getScalarColumnCellsBase ( const RefRows rownrs,
ArrayBase dataPtr 
)
private
virtual void casacore::DataManagerColumn::getScalarColumnCellsV ( const RefRows rownrs,
void *  dataPtr 
)
virtual

Get some 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). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getScalarColumnV ( void *  dataPtr)
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). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::getShortV ( uInt  rownr,
Short dataPtr 
)
protectedvirtual
void casacore::DataManagerColumn::getSliceArr ( uInt  row,
const Slicer section,
CountedPtr< ArrayBase > &  fullArr,
ArrayBase arr 
)
private

Get a slice from the array in the given row.

It reads the full array in the possibly reshaped ArrayBase object.

void casacore::DataManagerColumn::getSliceBase ( uInt  rownr,
const Slicer slicer,
ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::getSliceV ( uInt  rownr,
const Slicer slicer,
void *  dataPtr 
)
virtual

Get a section of the array in the given row.

The argument dataPtr is in fact an Array<T>*, but a void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn getSlice function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::Adios2StManColumnT< T >, casacore::StManColumn, and casacore::ForwardColumnIndexedRow.

virtual void casacore::DataManagerColumn::getStringV ( uInt  rownr,
String dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getuCharV ( uInt  rownr,
uChar dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getuIntV ( uInt  rownr,
uInt dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::getuShortV ( uInt  rownr,
uShort dataPtr 
)
protectedvirtual
Bool casacore::DataManagerColumn::isFixedShape ( ) const
inline

Is this a fixed shape column?

Definition at line 627 of file DataManager.h.

References isFixedShape_p.

Referenced by setIsFixedShape().

virtual Bool casacore::DataManagerColumn::isShapeDefined ( uInt  rownr)
virtual
virtual Bool casacore::DataManagerColumn::isWritable ( ) const
virtual
virtual uInt casacore::DataManagerColumn::ndim ( uInt  rownr)
virtual
DataManagerColumn& casacore::DataManagerColumn::operator= ( const DataManagerColumn )
private

Assignment cannot be used for this base class.

The private declaration of this operator makes it unusable.

void casacore::DataManagerColumn::put ( uInt  rownr,
const Bool dataPtr 
)
inline

Put the scalar value into the given row.

These functions are non-virtual and are converted to their virtual putV equivalent to achieve that a derived templated class (like VirtualScalarColumn) does not have to declare and implement all these functions. The compiler complains about hiding virtual functions if you do not declare all virtual functions with the same name in a derived class.

Definition at line 807 of file DataManager.h.

References putBoolV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const uChar dataPtr 
)
inline

Definition at line 809 of file DataManager.h.

References putuCharV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const Short dataPtr 
)
inline

Definition at line 811 of file DataManager.h.

References putShortV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const uShort dataPtr 
)
inline

Definition at line 813 of file DataManager.h.

References putuShortV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const Int dataPtr 
)
inline

Definition at line 815 of file DataManager.h.

References putIntV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const uInt dataPtr 
)
inline

Definition at line 817 of file DataManager.h.

References putuIntV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const Int64 dataPtr 
)
inline

Definition at line 819 of file DataManager.h.

References putInt64V().

void casacore::DataManagerColumn::put ( uInt  rownr,
const float *  dataPtr 
)
inline

Definition at line 821 of file DataManager.h.

References putfloatV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const double *  dataPtr 
)
inline

Definition at line 823 of file DataManager.h.

References putdoubleV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const Complex *  dataPtr 
)
inline

Definition at line 825 of file DataManager.h.

References putComplexV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const DComplex *  dataPtr 
)
inline

Definition at line 827 of file DataManager.h.

References putDComplexV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const String dataPtr 
)
inline

Definition at line 829 of file DataManager.h.

References putStringV().

void casacore::DataManagerColumn::put ( uInt  rownr,
const void *  dataPtr 
)
inline

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

Definition at line 832 of file DataManager.h.

References putOtherV().

void casacore::DataManagerColumn::putArrayColumnBase ( const ArrayBase data)
private
void casacore::DataManagerColumn::putArrayColumnCellsBase ( const RefRows rownrs,
const ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::putArrayColumnCellsV ( const RefRows rownrs,
const void *  dataPtr 
)
virtual

Put some array values in the column.

The argument dataPtr is in fact an const Array<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 ArrayColumn getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::StManColumn, and casacore::Adios2StManColumnT< T >.

virtual void casacore::DataManagerColumn::putArrayColumnV ( const void *  dataPtr)
virtual

Put all array values in the column.

The argument dataPtr is in fact a const Array<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 ArrayColumn putColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putArrayV ( uInt  rownr,
const void *  dataPtr 
)
virtual

Put the array value into the given row.

The argument dataPtr is in fact a const Array<T>*, but a const void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn put function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::StManColumn, casacore::ForwardColumnIndexedRow, and casacore::Adios2StManColumnT< T >.

virtual void casacore::DataManagerColumn::putBlockV ( uInt  rownr,
uInt  nrmax,
const void *  dataPtr 
)
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. The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putBoolV ( uInt  rownr,
const Bool dataPtr 
)
protectedvirtual
void casacore::DataManagerColumn::putColumnSliceBase ( const Slicer slicer,
const ArrayBase data 
)
private
void casacore::DataManagerColumn::putColumnSliceCellsBase ( const RefRows rownrs,
const Slicer slicer,
const ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::putColumnSliceCellsV ( const RefRows rownrs,
const Slicer slicer,
const void *  dataPtr 
)
virtual

Put into a section of some arrays in the column.

The argument dataPtr is in fact a const Array<T>*, but a const void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn putColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putColumnSliceV ( const Slicer slicer,
const void *  dataPtr 
)
virtual

Put into a section of all arrays in the column.

The argument dataPtr is in fact a const Array<T>*, but a const void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn putColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putComplexV ( uInt  rownr,
const Complex *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putDComplexV ( uInt  rownr,
const DComplex *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putdoubleV ( uInt  rownr,
const double *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putfloatV ( uInt  rownr,
const float *  dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putInt64V ( uInt  rownr,
const Int64 dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putIntV ( uInt  rownr,
const Int dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putOtherV ( uInt  rownr,
const void *  dataPtr 
)
protectedvirtual

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

Reimplemented in casacore::ForwardColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::ForwardColumnIndexedRow.

Referenced by put().

void casacore::DataManagerColumn::putScalarColumnBase ( const ArrayBase dataPtr)
private
void casacore::DataManagerColumn::putScalarColumnCellsBase ( const RefRows rownrs,
const ArrayBase dataPtr 
)
private
virtual void casacore::DataManagerColumn::putScalarColumnCellsV ( const RefRows rownrs,
const void *  dataPtr 
)
virtual

Put some 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 getColumn function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putScalarColumnV ( const void *  dataPtr)
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). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::ForwardColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, and casacore::StManColumn.

virtual void casacore::DataManagerColumn::putShortV ( uInt  rownr,
const Short dataPtr 
)
protectedvirtual
void casacore::DataManagerColumn::putSliceArr ( uInt  row,
const Slicer section,
CountedPtr< ArrayBase > &  fullArr,
const ArrayBase arr 
)
private

Put a slice into the array in the given row.

It reads and writes the full array in the possibly reshaped ArrayBase object.

void casacore::DataManagerColumn::putSliceBase ( uInt  rownr,
const Slicer slicer,
const ArrayBase data 
)
private
virtual void casacore::DataManagerColumn::putSliceV ( uInt  rownr,
const Slicer slicer,
const void *  dataPtr 
)
virtual

Put into a section of the array in the given row.

The argument dataPtr is in fact a const Array<T>*, but a const void* is needed to be generic. The array pointed to by dataPtr has to have the correct shape (which is guaranteed by the ArrayColumn putSlice function). The default implementation throws an "invalid operation" exception.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Float >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< Bool >, casacore::VirtualArrayColumn< VirtualType >, casacore::VirtualArrayColumn< Complex >, casacore::ForwardColumn, casacore::Adios2StManColumnT< T >, casacore::StManColumn, and casacore::ForwardColumnIndexedRow.

virtual void casacore::DataManagerColumn::putStringV ( uInt  rownr,
const String dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putuCharV ( uInt  rownr,
const uChar dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putuIntV ( uInt  rownr,
const uInt dataPtr 
)
protectedvirtual
virtual void casacore::DataManagerColumn::putuShortV ( uInt  rownr,
const uShort dataPtr 
)
protectedvirtual
void casacore::DataManagerColumn::setColumnName ( const String colName)
inline

Set the column name.

Definition at line 999 of file DataManager.h.

References colName_p.

void casacore::DataManagerColumn::setFixedShapeColumn ( const IPosition shape)
inline

Set the shape of all (fixed-shaped) arrays in the column.

Effectively it is the same as setShapeColumn, but it also sets the isFixedShape_p flag.

Definition at line 653 of file DataManager.h.

References isFixedShape_p, setShapeColumn(), and casacore::True.

void casacore::DataManagerColumn::setIsFixedShape ( Bool  isFixedShape)
inline

Set the isFixedShape flag.

Definition at line 623 of file DataManager.h.

References isFixedShape(), and isFixedShape_p.

virtual void casacore::DataManagerColumn::setMaxLength ( uInt  maxLength)
virtual

Set the maximum length of the value (can be used for strings).

By default the maximum length is ignored.

Reimplemented in casacore::SSMColumn, casacore::SSMIndColumn, and casacore::SSMDirColumn.

virtual void casacore::DataManagerColumn::setShape ( uInt  rownr,
const IPosition shape 
)
virtual
virtual void casacore::DataManagerColumn::setShapeColumn ( const IPosition shape)
privatevirtual
virtual void casacore::DataManagerColumn::setShapeTiled ( uInt  rownr,
const IPosition shape,
const IPosition tileShape 
)
virtual

Set the shape and tile shape of an (variable-shaped) array in the given row.

By default it ignores the tile shape (thus only sets the shape).

Reimplemented in casacore::TSMDataColumn.

virtual IPosition casacore::DataManagerColumn::shape ( uInt  rownr)
virtual
void casacore::DataManagerColumn::throwGet ( ) const

Throw an "invalid operation" exception for the default implementation of get.

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

void casacore::DataManagerColumn::throwPut ( ) const

Throw an "invalid operation" exception for the default implementation of put.

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

virtual IPosition casacore::DataManagerColumn::tileShape ( uInt  rownr)
virtual

Get the tile shape of the item in the given row.

By default it returns a zero-length IPosition.

Reimplemented in casacore::TSMDataColumn.

Member Data Documentation

ColumnCache casacore::DataManagerColumn::colCache_p
private

Definition at line 1048 of file DataManager.h.

Referenced by columnCache(), and columnCachePtr().

String casacore::DataManagerColumn::colName_p
private

Definition at line 1047 of file DataManager.h.

Referenced by columnName(), and setColumnName().

Bool casacore::DataManagerColumn::isFixedShape_p
private

Definition at line 1046 of file DataManager.h.

Referenced by isFixedShape(), setFixedShapeColumn(), and setIsFixedShape().


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