26#ifndef TABLES_VIRTSCACOL_H
27#define TABLES_VIRTSCACOL_H
30#include <casacore/casa/aips.h>
31#include <casacore/casa/Arrays/ArrayFwd.h>
32#include <casacore/tables/DataMan/DataManager.h>
184 getVirtualScalar(
this, rownr, dataPtr);
186 void getInt(
rownr_t rownr,
Int* dataPtr)
override { getVirtualScalar(
this, rownr, dataPtr); }
189 void getfloat(
rownr_t rownr,
float* dataPtr)
override { getVirtualScalar(
this, rownr, dataPtr); }
191 getVirtualScalar(
this, rownr, dataPtr);
194 getVirtualScalar(
this, rownr, dataPtr);
197 getVirtualScalar(
this, rownr, dataPtr);
200 getVirtualScalar(
this, rownr, dataPtr);
210 putVirtualScalar(
this, rownr, dataPtr);
213 putVirtualScalar(
this, rownr, dataPtr);
216 putVirtualScalar(
this, rownr, dataPtr);
219 putVirtualScalar(
this, rownr, dataPtr);
222 putVirtualScalar(
this, rownr, dataPtr);
225 putVirtualScalar(
this, rownr, dataPtr);
228 putVirtualScalar(
this, rownr, dataPtr);
231 putVirtualScalar(
this, rownr, dataPtr);
234 putVirtualScalar(
this, rownr, dataPtr);
237 putVirtualScalar(
this, rownr, dataPtr);
240 putVirtualScalar(
this, rownr, dataPtr);
243 putVirtualScalar(
this, rownr, dataPtr);
274 col->
get(rownr, *dataPtr);
280 col->
put(rownr, *dataPtr);
287#ifndef CASACORE_NO_AUTO_TEMPLATES
288#include <casacore/tables/DataMan/VirtScaCol.tcc>
Non-templated base class for templated Array class.
void throwGet() const
Throw an "invalid operation" exception for the default implementation of get.
void throwPut() const
Throw an "invalid operation" exception for the default implementation of put.
DataManagerColumn()
Create a column.
String: the storage and methods of handling collections of characters.
virtual void putColumnSliceV(const Slicer &slicer, const ArrayBase &data)
Put into a section of all arrays in the column.
virtual void getArrayColumnV(ArrayBase &data)
Get all array values in the column.
virtual void putArrayColumnCellsV(const RefRows &rownrs, const ArrayBase &data)
Put some array values in the column.
virtual void getSliceV(rownr_t rownr, const Slicer &slicer, ArrayBase &data)
Get a section of the array in the given row.
virtual Bool isWritable() const
By default no data can be put in a virtual column.
virtual void putArrayColumnV(const ArrayBase &data)
Put all array values in the column.
virtual void getColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
Get a section of some arrays in the column.
virtual void putArrayV(rownr_t rownr, const ArrayBase &data)
Put the array value into the given row.
virtual void putColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)
Put into a section of some arrays in the column.
virtual void getArrayV(rownr_t rownr, ArrayBase &dataPtr)
The array access functions throw an exception.
virtual ~VirtualScalarColumnBase()
virtual void getColumnSliceV(const Slicer &slicer, ArrayBase &data)
Get a section of all arrays in the column.
virtual void putSliceV(rownr_t rownr, const Slicer &slicer, const ArrayBase &data)
Put into a section of the array in the given row.
virtual void getArrayColumnCellsV(const RefRows &rownrs, ArrayBase &data)
Get some array values in the column.
VirtualScalarColumnBase()
Create a column.
void getDComplex(rownr_t rownr, DComplex *dataPtr) override
void getBool(rownr_t rownr, Bool *dataPtr) override
Implement the virtual functions defined in DataManagerColumn.
void getuChar(rownr_t rownr, uChar *dataPtr) override
void putScalarColumnCellsV(const RefRows &rownrs, const ArrayBase &dataPtr) override
Put some scalar values in the column.
void putOther(rownr_t rownr, const void *dataPtr) override
This function is the put for all non-standard data types.
void putScalarColumnV(const ArrayBase &dataPtr) override
Put all scalar values in the column.
VirtualScalarColumn< T > & operator=(const VirtualScalarColumn< T > &)=delete
The object cannot be assigned to.
void putuShort(rownr_t rownr, const uShort *dataPtr) override
void getComplex(rownr_t rownr, Complex *dataPtr) override
void putInt64(rownr_t rownr, const Int64 *dataPtr) override
void putfloat(rownr_t rownr, const float *dataPtr) override
String dataTypeId() const override
Return the data type Id of the column.
void putComplex(rownr_t rownr, const Complex *dataPtr) override
void getScalarColumnV(ArrayBase &dataPtr) override
Get all scalar values in the column.
VirtualScalarColumn(const VirtualScalarColumn< T > &)=delete
The object cannot be copied.
void getuInt(rownr_t rownr, uInt *dataPtr) override
void getInt64(rownr_t rownr, Int64 *dataPtr) override
void getScalarColumnCellsV(const RefRows &rownrs, ArrayBase &dataPtr) override
Get some scalar values in the column.
void getOther(rownr_t rownr, void *dataPtr) override
This function is the get for all non-standard data types.
void putInt(rownr_t rownr, const Int *dataPtr) override
void getString(rownr_t rownr, String *dataPtr) override
void getShort(rownr_t rownr, Short *dataPtr) override
void putuInt(rownr_t rownr, const uInt *dataPtr) override
void putShort(rownr_t rownr, const Short *dataPtr) override
void getdouble(rownr_t rownr, double *dataPtr) override
virtual void get(rownr_t rownr, T &data)=0
Let a derived class get the scalar value in the given row.
void putdouble(rownr_t rownr, const double *dataPtr) override
void putString(rownr_t rownr, const String *dataPtr) override
void putDComplex(rownr_t rownr, const DComplex *dataPtr) override
void getfloat(rownr_t rownr, float *dataPtr) override
void putuChar(rownr_t rownr, const uChar *dataPtr) override
void getInt(rownr_t rownr, Int *dataPtr) override
void putBool(rownr_t rownr, const Bool *dataPtr) override
Implement the virtual functions defined in DataManagerColumn.
int dataType() const override
Return the data type of the column.
void getuShort(rownr_t rownr, uShort *dataPtr) override
virtual void put(rownr_t rownr, const T &data)
Let a derived class put the scalar value into the given row.
virtual ~VirtualScalarColumn()
Frees up the storage.
VirtualScalarColumn()
Create a column.
For temporary backward namespace compatibility, use casa as alias for casacore.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size).
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.
Global functions to get or put data of a virtual column.
void putVirtualScalar(VirtualScalarColumn< T > *col, uInt rownr, const T *dataPtr)
void getVirtualScalar(VirtualScalarColumn< T > *col, uInt rownr, T *dataPtr)
void getVirtualScalar(DataManagerColumn *col, uInt, void *)
void putVirtualScalar(DataManagerColumn *col, uInt, const void *)