28 #ifndef TABLES_VIRTUALTAQLCOLUMN_H
29 #define TABLES_VIRTUALTAQLCOLUMN_H
32 #include <casacore/casa/aips.h>
33 #include <casacore/tables/DataMan/VirtColEng.h>
34 #include <casacore/tables/DataMan/DataManager.h>
35 #include <casacore/casa/Arrays/IPosition.h>
Non-templated base class for templated Array class.
const String & columnName() const
Get rhe column name.
virtual String dataTypeId() const
Get the data type id of the column for dataType==TpOther.
Abstract base class for a data manager.
virtual String dataManagerName() const
Return the name of the data manager.
String: the storage and methods of handling collections of characters.
virtual void getuInt(rownr_t rownr, uInt *dataPtr)
virtual void getScalarColumnV(ArrayBase &arr)
Get functions implemented by means of their DataManagerColumn::getXXBase counterparts,...
virtual void getInt64(rownr_t rownr, Int64 *dataPtr)
static DataManager * makeObject(const String &dataManagerName, const Record &spec)
Define the "constructor" to construct this engine when a table is read back.
virtual void getuChar(rownr_t rownr, uChar *dataPtr)
void makeCurArray()
Make the result cache.
virtual Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row? By default it returns True.
virtual ~VirtualTaQLColumn()
Destructor is mandatory.
virtual void getBool(rownr_t rownr, Bool *dataPtr)
Get the scalar value in the given row.
virtual void getfloat(rownr_t rownr, float *dataPtr)
virtual void getShort(rownr_t rownr, Short *dataPtr)
virtual void create64(rownr_t)
Let the engine initialize the object for a new table.
VirtualTaQLColumn(const VirtualTaQLColumn &)
Copy is not needed and therefore forbidden (so it is made private).
virtual DataManager * clone() const
Clone the engine object.
virtual void getString(rownr_t rownr, String *dataPtr)
virtual uInt ndim(rownr_t rownr)
Get the dimensionality of the item in the given row.
static void registerClass()
Register the class name and the static makeObject "constructor".
void getResult(rownr_t rownr)
Get the array result into itsCurArray.
virtual IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
virtual void getInt(rownr_t rownr, Int *dataPtr)
void fillArray(ArrayBase &data)
Fill an array with a constant scalar value.
VirtualTaQLColumn(const Record &spec)
Construct it with the given specification.
virtual void getdouble(rownr_t rownr, double *dataPtr)
virtual void prepare()
Prepare compiles the expression.
virtual void getuShort(rownr_t rownr, uShort *dataPtr)
static String className()
Return the name of the class.
void fillColumnCache()
Fill the ColumnCache object with a constant scalar value.
virtual String dataManagerType() const
Return the type name of the engine.
virtual void getDComplex(rownr_t rownr, DComplex *dataPtr)
virtual Bool isWritable() const
Test if data can be put into this column.
virtual void getComplex(rownr_t rownr, Complex *dataPtr)
const String & expression() const
Return the TaQL expression used.
VirtualTaQLColumn(const String &expr, const String &style=String())
Construct it with the given TaQL expression.
VirtualTaQLColumn & operator=(const VirtualTaQLColumn &)
Assignment is not needed and therefore forbidden (so it is made private).
virtual void setMaxLength(uInt maxLength)
Set the maximum length of a 'fixed length' string.
virtual void getScalarColumnCellsV(const RefRows &rownrs, ArrayBase &arr)
Get some scalar values in the column.
virtual void setShapeColumn(const IPosition &aShape)
Set the shape of an array in the column.
virtual Record dataManagerSpec() const
Get the data manager specification.
virtual void getArrayV(rownr_t rownr, ArrayBase &arr)
Get the array value in the given row.
virtual int dataType() const
Functions to return column info.
virtual DataManagerColumn * makeIndArrColumn(const String &columnName, int dataType, const String &dataTypeId)
Create the column object for the indirect array column in this engine.
virtual DataManagerColumn * makeScalarColumn(const String &columnName, int dataType, const String &)
Create the column object for the scalar column in this engine.
std::complex< Float > Complex
std::complex< Double > DComplex
this file contains all the compiler specific defines
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.