casacore
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::DataManagerColumn Class Referenceabstract

More...

#include <DataManagerColumn.h>

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 (rownr_t rownr, const IPosition &shape)
 Set the shape of an (variable-shaped) array in the given row. More...
 
virtual void setShapeTiled (rownr_t 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 (rownr_t rownr)
 Is the value shape defined in the given row? By default it returns True. More...
 
virtual uInt ndim (rownr_t rownr)
 Get the dimensionality of the item in the given row. More...
 
virtual IPosition shape (rownr_t rownr)
 Get the shape of the item in the given row. More...
 
virtual IPosition tileShape (rownr_t 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...
 
ColumnCachecolumnCache ()
 Get access to the ColumnCache object. More...
 
const ColumnCachecolumnCachePtr () const
 
void get (rownr_t rownr, Bool *dataPtr)
 Get the scalar value in the given row. More...
 
void get (rownr_t rownr, uChar *dataPtr)
 
void get (rownr_t rownr, Short *dataPtr)
 
void get (rownr_t rownr, uShort *dataPtr)
 
void get (rownr_t rownr, Int *dataPtr)
 
void get (rownr_t rownr, uInt *dataPtr)
 
void get (rownr_t rownr, Int64 *dataPtr)
 
void get (rownr_t rownr, float *dataPtr)
 
void get (rownr_t rownr, double *dataPtr)
 
void get (rownr_t rownr, Complex *dataPtr)
 
void get (rownr_t rownr, DComplex *dataPtr)
 
void get (rownr_t rownr, String *dataPtr)
 
void get (rownr_t rownr, void *dataPtr)
 This function is the get for all non-standard data types. More...
 
void put (rownr_t rownr, const Bool *dataPtr)
 Put the scalar value into the given row. More...
 
void put (rownr_t rownr, const uChar *dataPtr)
 
void put (rownr_t rownr, const Short *dataPtr)
 
void put (rownr_t rownr, const uShort *dataPtr)
 
void put (rownr_t rownr, const Int *dataPtr)
 
void put (rownr_t rownr, const uInt *dataPtr)
 
void put (rownr_t rownr, const Int64 *dataPtr)
 
void put (rownr_t rownr, const float *dataPtr)
 
void put (rownr_t rownr, const double *dataPtr)
 
void put (rownr_t rownr, const Complex *dataPtr)
 
void put (rownr_t rownr, const DComplex *dataPtr)
 
void put (rownr_t rownr, const String *dataPtr)
 
void put (rownr_t rownr, const void *dataPtr)
 This function is the put for all non-standard data types. More...
 
virtual void getScalarColumnV (ArrayBase &dataPtr)
 Get all scalar values in the column. More...
 
virtual void putScalarColumnV (const ArrayBase &dataPtr)
 Put all scalar values in the column. More...
 
virtual void getScalarColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr)
 Get some scalar values in the column. More...
 
virtual void putScalarColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr)
 Put some scalar values in the column. More...
 
virtual void getArrayV (rownr_t rownr, ArrayBase &dataPtr)
 Get the array value in the given row. More...
 
virtual void putArrayV (rownr_t rownr, const ArrayBase &data)
 Put the array value into the given row. More...
 
virtual void getArrayColumnV (ArrayBase &data)
 Get all array values in the column. More...
 
virtual void putArrayColumnV (const ArrayBase &data)
 Put all array values in the column. More...
 
virtual void getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data)
 Get some array values in the column. More...
 
virtual void putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &data)
 Put some array values in the column. More...
 
virtual void getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &data)
 Get a section of the array in the given row. More...
 
virtual void putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &data)
 Put into a section of the array in the given row. More...
 
virtual void getColumnSliceV (const Slicer &slicer, ArrayBase &data)
 Get a section of all arrays in the column. More...
 
virtual void putColumnSliceV (const Slicer &slicer, const ArrayBase &data)
 Put into a section of all arrays in the column. More...
 
virtual void getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
 Get a section of some arrays in the column. More...
 
virtual void putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)
 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 getBool (rownr_t rownr, Bool *dataPtr)
 Get the scalar value in the given row. More...
 
virtual void getuChar (rownr_t rownr, uChar *dataPtr)
 
virtual void getShort (rownr_t rownr, Short *dataPtr)
 
virtual void getuShort (rownr_t rownr, uShort *dataPtr)
 
virtual void getInt (rownr_t rownr, Int *dataPtr)
 
virtual void getuInt (rownr_t rownr, uInt *dataPtr)
 
virtual void getInt64 (rownr_t rownr, Int64 *dataPtr)
 
virtual void getfloat (rownr_t rownr, float *dataPtr)
 
virtual void getdouble (rownr_t rownr, double *dataPtr)
 
virtual void getComplex (rownr_t rownr, Complex *dataPtr)
 
virtual void getDComplex (rownr_t rownr, DComplex *dataPtr)
 
virtual void getString (rownr_t rownr, String *dataPtr)
 
virtual void getOther (rownr_t rownr, void *dataPtr)
 This function is the get for all non-standard data types. More...
 
virtual void putBool (rownr_t rownr, const Bool *dataPtr)
 Put the scalar value into the given row. More...
 
virtual void putuChar (rownr_t rownr, const uChar *dataPtr)
 
virtual void putShort (rownr_t rownr, const Short *dataPtr)
 
virtual void putuShort (rownr_t rownr, const uShort *dataPtr)
 
virtual void putInt (rownr_t rownr, const Int *dataPtr)
 
virtual void putuInt (rownr_t rownr, const uInt *dataPtr)
 
virtual void putInt64 (rownr_t rownr, const Int64 *dataPtr)
 
virtual void putfloat (rownr_t rownr, const float *dataPtr)
 
virtual void putdouble (rownr_t rownr, const double *dataPtr)
 
virtual void putComplex (rownr_t rownr, const Complex *dataPtr)
 
virtual void putDComplex (rownr_t rownr, const DComplex *dataPtr)
 
virtual void putString (rownr_t rownr, const String *dataPtr)
 
virtual void putOther (rownr_t rownr, const void *dataPtr)
 This function is the put for all non-standard data types. 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 (rownr_t rownr, const Slicer &slicer, ArrayBase &data)
 
void putSliceBase (rownr_t 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)
 

Private Member Functions

 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...
 
virtual void setShapeColumn (const IPosition &shape)
 Set the shape of all (fixed-shaped) arrays in the column. More...
 
void getSliceArr (rownr_t row, const Slicer &section, CountedPtr< ArrayBase > &fullArr, ArrayBase &arr)
 Get a slice from the array in the given row. More...
 
void putSliceArr (rownr_t 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.

The get/put interface has changed per 1-Sep-2017. The old interface for ArrayColumn::getArray worked as follows:

  1. ArrayColumn calls (virtual) BaseColumn::get passing the array as a void*. void* is used to support the derived RefColumn class which is not templated.
  2. BaseColumn::get calls (virtual) DataManagerColumn::getArrayV. This function can be implemented by a derived storage manager or virtual column engine class.
  3. Storage managers derive from StManColumn. Its getArrayV function calls the appropriate getArrayXXV function where XX is the data type (e.g. Int). These getArrayXXV functions are implemented in the storage managers.
  4. Virtual column engines derive from the templated VirtArrCol class which implements getArrayV by calling a templated virtual getArray function.

The old interface for a function such as getArrayColumn works more or less the same. However, this function does not need to be implemented by a data manager. ArrayColumn will first ask the data manager if it supports getting an entire array column. If not, ArrayColumn will call getArray for each row. Functions such as getSlice, etc. work similarly.

A new interface has been developed which should result in a smaller code base and simpler classes. The new interface could be developed thanks to same Array enhancements making it possible to use quite some Array functionality in non-templated classes. The new interface works differently in a number of points:

However, some plug-in data managers exist outside the Casacore repository (e.g., LofarStMan and AdiosStMan). It should be possible to build and use them for some time with the old and new interface. To make this possible the new interface has to be backward compatible for some time. This is achieved by:

Motivation

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

Definition at line 150 of file DataManagerColumn.h.

Constructor & Destructor Documentation

◆ DataManagerColumn() [1/2]

casacore::DataManagerColumn::DataManagerColumn ( )
inline

Create a column.

Definition at line 155 of file DataManagerColumn.h.

◆ ~DataManagerColumn()

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

Frees up the storage.

◆ DataManagerColumn() [2/2]

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

◆ canChangeShape()

virtual Bool casacore::DataManagerColumn::canChangeShape ( ) const
virtual

◆ columnCache()

ColumnCache& casacore::DataManagerColumn::columnCache ( )
inline

Get access to the ColumnCache object.

Definition at line 228 of file DataManagerColumn.h.

References colCache_p.

◆ columnCachePtr()

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

Definition at line 230 of file DataManagerColumn.h.

References colCache_p.

◆ columnName()

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

Get rhe column name.

Definition at line 425 of file DataManagerColumn.h.

References colName_p.

◆ dataType()

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

◆ dataTypeId()

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::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, and casacore::ForwardColumn.

◆ get() [1/13]

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

Get the scalar value in the given row.

These functions are non-virtual and are converted to their virtual getXX equivalent to achieve that a derived templated class (such as 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 242 of file DataManagerColumn.h.

References getBool().

◆ get() [2/13]

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

Definition at line 260 of file DataManagerColumn.h.

References getComplex().

◆ get() [3/13]

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

Definition at line 262 of file DataManagerColumn.h.

References getDComplex().

◆ get() [4/13]

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

Definition at line 258 of file DataManagerColumn.h.

References getdouble().

◆ get() [5/13]

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

Definition at line 256 of file DataManagerColumn.h.

References getfloat().

◆ get() [6/13]

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

Definition at line 250 of file DataManagerColumn.h.

References getInt().

◆ get() [7/13]

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

Definition at line 254 of file DataManagerColumn.h.

References getInt64().

◆ get() [8/13]

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

Definition at line 246 of file DataManagerColumn.h.

References getShort().

◆ get() [9/13]

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

Definition at line 264 of file DataManagerColumn.h.

References getString().

◆ get() [10/13]

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

Definition at line 244 of file DataManagerColumn.h.

References getuChar().

◆ get() [11/13]

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

Definition at line 252 of file DataManagerColumn.h.

References getuInt().

◆ get() [12/13]

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

Definition at line 248 of file DataManagerColumn.h.

References getuShort().

◆ get() [13/13]

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

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

Definition at line 267 of file DataManagerColumn.h.

References getOther().

◆ getArrayColumnBase()

void casacore::DataManagerColumn::getArrayColumnBase ( ArrayBase data)
protected

◆ getArrayColumnCellsBase()

void casacore::DataManagerColumn::getArrayColumnCellsBase ( const RefRows rownrs,
ArrayBase data 
)
protected

◆ getArrayColumnCellsV()

virtual void casacore::DataManagerColumn::getArrayColumnCellsV ( const RefRows rownrs,
ArrayBase data 
)
virtual

Get some array values in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation does a getArrayV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, and casacore::TSMDataColumn.

◆ getArrayColumnV()

virtual void casacore::DataManagerColumn::getArrayColumnV ( ArrayBase data)
virtual

Get all array values in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation does a getArrayV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, and casacore::TSMDataColumn.

◆ getArrayV()

virtual void casacore::DataManagerColumn::getArrayV ( rownr_t  rownr,
ArrayBase dataPtr 
)
virtual

◆ getBool()

virtual void casacore::DataManagerColumn::getBool ( rownr_t  rownr,
Bool dataPtr 
)
protectedvirtual

◆ getColumnSliceBase()

void casacore::DataManagerColumn::getColumnSliceBase ( const Slicer slicer,
ArrayBase data 
)
protected

◆ getColumnSliceCellsBase()

void casacore::DataManagerColumn::getColumnSliceCellsBase ( const RefRows rownrs,
const Slicer slicer,
ArrayBase data 
)
protected

◆ getColumnSliceCellsV()

virtual void casacore::DataManagerColumn::getColumnSliceCellsV ( const RefRows rownrs,
const Slicer slicer,
ArrayBase data 
)
virtual

Get a section of some arrays in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation does a getSliceV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, casacore::TSMDataColumn, and casacore::Adios2StManColumnString.

◆ getColumnSliceV()

virtual void casacore::DataManagerColumn::getColumnSliceV ( const Slicer slicer,
ArrayBase data 
)
virtual

Get a section of all arrays in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation does a getSliceV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, casacore::TSMDataColumn, and casacore::Adios2StManColumnString.

◆ getComplex()

virtual void casacore::DataManagerColumn::getComplex ( rownr_t  rownr,
Complex *  dataPtr 
)
protectedvirtual

◆ getDComplex()

virtual void casacore::DataManagerColumn::getDComplex ( rownr_t  rownr,
DComplex *  dataPtr 
)
protectedvirtual

◆ getdouble()

virtual void casacore::DataManagerColumn::getdouble ( rownr_t  rownr,
double *  dataPtr 
)
protectedvirtual

◆ getfloat()

virtual void casacore::DataManagerColumn::getfloat ( rownr_t  rownr,
float *  dataPtr 
)
protectedvirtual

◆ getInt()

virtual void casacore::DataManagerColumn::getInt ( rownr_t  rownr,
Int dataPtr 
)
protectedvirtual

◆ getInt64()

virtual void casacore::DataManagerColumn::getInt64 ( rownr_t  rownr,
Int64 dataPtr 
)
protectedvirtual

◆ getOther()

virtual void casacore::DataManagerColumn::getOther ( rownr_t  rownr,
void *  dataPtr 
)
protectedvirtual

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

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

Referenced by get().

◆ getScalarColumnBase()

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

The default implementations of get and put functions.

◆ getScalarColumnCellsBase()

void casacore::DataManagerColumn::getScalarColumnCellsBase ( const RefRows rownrs,
ArrayBase dataPtr 
)
protected

◆ getScalarColumnCellsV()

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

Get some scalar values in the column.

The vector given in data has to have the correct length (which is guaranteed by the ScalarColumn getColumn function). The default implementation does a getXX per row.

Reimplemented in casacore::Adios2StManColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, casacore::VirtualArrayColumnBase, casacore::StManColumn, casacore::ISMColumn, casacore::ForwardColumn, and casacore::VirtualTaQLColumn.

◆ getScalarColumnV()

virtual void casacore::DataManagerColumn::getScalarColumnV ( ArrayBase dataPtr)
virtual

Get all scalar values in the column.

The vector given in data has to have the correct length (which is guaranteed by the ScalarColumn getColumn function). The default implementation does a getXX per row.

Reimplemented in casacore::Adios2StManColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, casacore::VirtualArrayColumnBase, casacore::StManColumn, casacore::ISMColumn, casacore::ForwardColumn, casacore::MSMColumn, casacore::VirtualTaQLColumn, and casacore::SSMColumn.

◆ getShort()

virtual void casacore::DataManagerColumn::getShort ( rownr_t  rownr,
Short dataPtr 
)
protectedvirtual

◆ getSliceArr()

void casacore::DataManagerColumn::getSliceArr ( rownr_t  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.

◆ getSliceBase()

void casacore::DataManagerColumn::getSliceBase ( rownr_t  rownr,
const Slicer slicer,
ArrayBase data 
)
protected

◆ getSliceV()

virtual void casacore::DataManagerColumn::getSliceV ( rownr_t  rownr,
const Slicer slicer,
ArrayBase data 
)
virtual

◆ getString()

virtual void casacore::DataManagerColumn::getString ( rownr_t  rownr,
String dataPtr 
)
protectedvirtual

◆ getuChar()

virtual void casacore::DataManagerColumn::getuChar ( rownr_t  rownr,
uChar dataPtr 
)
protectedvirtual

◆ getuInt()

virtual void casacore::DataManagerColumn::getuInt ( rownr_t  rownr,
uInt dataPtr 
)
protectedvirtual

◆ getuShort()

virtual void casacore::DataManagerColumn::getuShort ( rownr_t  rownr,
uShort dataPtr 
)
protectedvirtual

◆ isFixedShape()

Bool casacore::DataManagerColumn::isFixedShape ( ) const
inline

Is this a fixed shape column?

Definition at line 167 of file DataManagerColumn.h.

References isFixedShape_p.

Referenced by setIsFixedShape().

◆ isShapeDefined()

virtual Bool casacore::DataManagerColumn::isShapeDefined ( rownr_t  rownr)
virtual

◆ isWritable()

virtual Bool casacore::DataManagerColumn::isWritable ( ) const
virtual

Test if data can be put into this column.

This does not test if the data file is writable, only if it is in principle allowed to store data into the column. (It may not be allowed for virtual columns). The default is True.

Reimplemented in dyscostman::DyscoStManColumn, casacore::VSCEngine< T >, casacore::VirtualTaQLColumn, casacore::VirtualScalarColumnBase, casacore::VirtualArrayColumnBase, casacore::VACEngine< T >, casacore::ForwardColumn, casacore::BaseMappedArrayEngine< VirtualType, StoredType >, casacore::BaseMappedArrayEngine< Complex, Int >, casacore::BaseMappedArrayEngine< Float, Short >, and casacore::BaseMappedArrayEngine< Bool, StoredType >.

◆ ndim()

virtual uInt casacore::DataManagerColumn::ndim ( rownr_t  rownr)
virtual

◆ operator=()

DataManagerColumn& casacore::DataManagerColumn::operator= ( const DataManagerColumn )
private

Assignment cannot be used for this base class.

The private declaration of this operator makes it unusable.

◆ put() [1/13]

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

Put the scalar value into the given row.

These functions are non-virtual and are converted to their virtual putXX equivalent to achieve that a derived templated class (such as 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 279 of file DataManagerColumn.h.

References putBool().

◆ put() [2/13]

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

Definition at line 297 of file DataManagerColumn.h.

References putComplex().

◆ put() [3/13]

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

Definition at line 299 of file DataManagerColumn.h.

References putDComplex().

◆ put() [4/13]

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

Definition at line 295 of file DataManagerColumn.h.

References putdouble().

◆ put() [5/13]

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

Definition at line 293 of file DataManagerColumn.h.

References putfloat().

◆ put() [6/13]

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

Definition at line 287 of file DataManagerColumn.h.

References putInt().

◆ put() [7/13]

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

Definition at line 291 of file DataManagerColumn.h.

References putInt64().

◆ put() [8/13]

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

Definition at line 283 of file DataManagerColumn.h.

References putShort().

◆ put() [9/13]

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

Definition at line 301 of file DataManagerColumn.h.

References putString().

◆ put() [10/13]

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

Definition at line 281 of file DataManagerColumn.h.

References putuChar().

◆ put() [11/13]

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

Definition at line 289 of file DataManagerColumn.h.

References putuInt().

◆ put() [12/13]

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

Definition at line 285 of file DataManagerColumn.h.

References putuShort().

◆ put() [13/13]

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

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

Definition at line 304 of file DataManagerColumn.h.

References putOther().

◆ putArrayColumnBase()

void casacore::DataManagerColumn::putArrayColumnBase ( const ArrayBase data)
protected

◆ putArrayColumnCellsBase()

void casacore::DataManagerColumn::putArrayColumnCellsBase ( const RefRows rownrs,
const ArrayBase data 
)
protected

◆ putArrayColumnCellsV()

virtual void casacore::DataManagerColumn::putArrayColumnCellsV ( const RefRows rownrs,
const ArrayBase data 
)
virtual

Put some array values in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn getColumn function). The default implementation does a putArrayV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::TSMDataColumn, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, and casacore::VirtualScalarColumnBase.

◆ putArrayColumnV()

virtual void casacore::DataManagerColumn::putArrayColumnV ( const ArrayBase data)
virtual

Put all array values in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn putColumn function). The default implementation does a putArrayV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, and casacore::TSMDataColumn.

◆ putArrayV()

virtual void casacore::DataManagerColumn::putArrayV ( rownr_t  rownr,
const ArrayBase data 
)
virtual

◆ putBool()

virtual void casacore::DataManagerColumn::putBool ( rownr_t  rownr,
const Bool dataPtr 
)
protectedvirtual

◆ putColumnSliceBase()

void casacore::DataManagerColumn::putColumnSliceBase ( const Slicer slicer,
const ArrayBase data 
)
protected

◆ putColumnSliceCellsBase()

void casacore::DataManagerColumn::putColumnSliceCellsBase ( const RefRows rownrs,
const Slicer slicer,
const ArrayBase data 
)
protected

◆ putColumnSliceCellsV()

virtual void casacore::DataManagerColumn::putColumnSliceCellsV ( const RefRows rownrs,
const Slicer slicer,
const ArrayBase data 
)
virtual

Put into a section of some arrays in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn putColumn function). The default implementation does a putSliceV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, casacore::TSMDataColumn, and casacore::Adios2StManColumnString.

◆ putColumnSliceV()

virtual void casacore::DataManagerColumn::putColumnSliceV ( const Slicer slicer,
const ArrayBase data 
)
virtual

Put into a section of all arrays in the column.

The array given in data has to have the correct shape (which is guaranteed by the ArrayColumn putColumn function). The default implementation does a putSliceV per row.

Reimplemented in casacore::VirtualArrayColumn< T >, casacore::VirtualArrayColumn< Double >, casacore::VirtualArrayColumn< VirtualType >, casacore::StManColumn, casacore::ForwardColumn, casacore::Adios2StManColumn, casacore::VirtualScalarColumnBase, casacore::TSMDataColumn, and casacore::Adios2StManColumnString.

◆ putComplex()

virtual void casacore::DataManagerColumn::putComplex ( rownr_t  rownr,
const Complex *  dataPtr 
)
protectedvirtual

◆ putDComplex()

virtual void casacore::DataManagerColumn::putDComplex ( rownr_t  rownr,
const DComplex *  dataPtr 
)
protectedvirtual

◆ putdouble()

virtual void casacore::DataManagerColumn::putdouble ( rownr_t  rownr,
const double *  dataPtr 
)
protectedvirtual

◆ putfloat()

virtual void casacore::DataManagerColumn::putfloat ( rownr_t  rownr,
const float *  dataPtr 
)
protectedvirtual

◆ putInt()

virtual void casacore::DataManagerColumn::putInt ( rownr_t  rownr,
const Int dataPtr 
)
protectedvirtual

◆ putInt64()

virtual void casacore::DataManagerColumn::putInt64 ( rownr_t  rownr,
const Int64 dataPtr 
)
protectedvirtual

◆ putOther()

virtual void casacore::DataManagerColumn::putOther ( rownr_t  rownr,
const void *  dataPtr 
)
protectedvirtual

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

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

Referenced by put().

◆ putScalarColumnBase()

void casacore::DataManagerColumn::putScalarColumnBase ( const ArrayBase dataPtr)
protected

◆ putScalarColumnCellsBase()

void casacore::DataManagerColumn::putScalarColumnCellsBase ( const RefRows rownrs,
const ArrayBase dataPtr 
)
protected

◆ putScalarColumnCellsV()

virtual void casacore::DataManagerColumn::putScalarColumnCellsV ( const RefRows rownrs,
const ArrayBase dataPtr 
)
virtual

Put some scalar values in the column.

The vector given in data has to have the correct length (which is guaranteed by the ScalarColumn getColumn function). The default implementation does a putXX per row.

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

◆ putScalarColumnV()

virtual void casacore::DataManagerColumn::putScalarColumnV ( const ArrayBase dataPtr)
virtual

Put all scalar values in the column.

The vector given in data has to have the correct length (which is guaranteed by the ScalarColumn putColumn function). The default implementation does a putXX per row.

Reimplemented in casacore::Adios2StManColumn, casacore::VirtualScalarColumn< T >, casacore::VirtualScalarColumn< Double >, casacore::VirtualArrayColumnBase, casacore::StManColumn, casacore::ISMColumn, casacore::ForwardColumn, casacore::MSMColumn, and casacore::SSMColumn.

◆ putShort()

virtual void casacore::DataManagerColumn::putShort ( rownr_t  rownr,
const Short dataPtr 
)
protectedvirtual

◆ putSliceArr()

void casacore::DataManagerColumn::putSliceArr ( rownr_t  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.

◆ putSliceBase()

void casacore::DataManagerColumn::putSliceBase ( rownr_t  rownr,
const Slicer slicer,
const ArrayBase data 
)
protected

◆ putSliceV()

virtual void casacore::DataManagerColumn::putSliceV ( rownr_t  rownr,
const Slicer slicer,
const ArrayBase data 
)
virtual

◆ putString()

virtual void casacore::DataManagerColumn::putString ( rownr_t  rownr,
const String dataPtr 
)
protectedvirtual

◆ putuChar()

virtual void casacore::DataManagerColumn::putuChar ( rownr_t  rownr,
const uChar dataPtr 
)
protectedvirtual

◆ putuInt()

virtual void casacore::DataManagerColumn::putuInt ( rownr_t  rownr,
const uInt dataPtr 
)
protectedvirtual

◆ putuShort()

virtual void casacore::DataManagerColumn::putuShort ( rownr_t  rownr,
const uShort dataPtr 
)
protectedvirtual

◆ setColumnName()

void casacore::DataManagerColumn::setColumnName ( const String colName)
inline

Set the column name.

Definition at line 421 of file DataManagerColumn.h.

References colName_p.

◆ setFixedShapeColumn()

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 193 of file DataManagerColumn.h.

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

◆ setIsFixedShape()

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

Set the isFixedShape flag.

Definition at line 163 of file DataManagerColumn.h.

References isFixedShape(), and isFixedShape_p.

◆ setMaxLength()

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::VirtualTaQLColumn, casacore::SSMIndColumn, casacore::SSMDirColumn, and casacore::SSMColumn.

◆ setShape()

virtual void casacore::DataManagerColumn::setShape ( rownr_t  rownr,
const IPosition shape 
)
virtual

◆ setShapeColumn()

virtual void casacore::DataManagerColumn::setShapeColumn ( const IPosition shape)
privatevirtual

◆ setShapeTiled()

virtual void casacore::DataManagerColumn::setShapeTiled ( rownr_t  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, and casacore::StManColumn.

◆ shape()

virtual IPosition casacore::DataManagerColumn::shape ( rownr_t  rownr)
virtual

◆ throwGet()

void casacore::DataManagerColumn::throwGet ( ) const

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

Referenced by casacore::VirtScaCol_global_functions_get_putVirtualScalar::getVirtualScalar().

◆ throwPut()

void casacore::DataManagerColumn::throwPut ( ) const

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

Referenced by casacore::VirtScaCol_global_functions_get_putVirtualScalar::putVirtualScalar().

◆ tileShape()

virtual IPosition casacore::DataManagerColumn::tileShape ( rownr_t  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, and casacore::StManColumn.

Member Data Documentation

◆ colCache_p

ColumnCache casacore::DataManagerColumn::colCache_p
private

Definition at line 516 of file DataManagerColumn.h.

Referenced by columnCache(), and columnCachePtr().

◆ colName_p

String casacore::DataManagerColumn::colName_p
private

Definition at line 515 of file DataManagerColumn.h.

Referenced by columnName(), and setColumnName().

◆ isFixedShape_p

Bool casacore::DataManagerColumn::isFixedShape_p
private

Definition at line 514 of file DataManagerColumn.h.

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


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