28 #ifndef TABLES_FORWARDCOLROW_H 29 #define TABLES_FORWARDCOLROW_H 32 #include <casacore/casa/aips.h> 33 #include <casacore/tables/DataMan/ForwardCol.h> 34 #include <casacore/tables/Tables/ScalarColumn.h> 39 class ForwardColumnIndexedRowEngine;
95 const Table& referencedTable);
305 const String& rowColumnName,
306 const String& dataManagerName);
315 const String& rowColumnName);
325 String dataManagerType()
const;
328 virtual Record dataManagerSpec()
const;
331 static String className();
335 static void registerClass();
353 const String& dataTypeId);
359 void create (
uInt initialNrrow);
400 if (
Int(rownr) != lastRow_p) {
401 rowNumber_p = rowColumn_p(rownr);
A Vector of integers, for indexing into Array<T> objects.
void putComplexV(uInt rownr, const Complex *dataPtr)
Int lastRow_p
Cache of last row used to get row number.
Bool canAccessArrayColumn(Bool &reask) const
This data manager cannot do get/putColumn.
void getComplexV(uInt rownr, Complex *dataPtr)
std::complex< Float > Complex
Main interface class to a read/write table.
IPosition shape(uInt rownr)
Get the shape of the item in the given row.
void setShape(uInt rownr, const IPosition &shape)
Set the shape of an (indirect) array in the given row.
Abstract base class for a column in a data manager.
PtrBlock< ForwardColumnIndexedRow * > refColumns_p
Define the various engine column objects.
Bool canChangeShape() const
This data manager cannot handle changing array shapes.
const String & columnName() const
Get rhe column name.
void putuCharV(uInt rownr, const uChar *dataPtr)
void putShortV(uInt rownr, const Short *dataPtr)
void putStringV(uInt rownr, const String *dataPtr)
void putuIntV(uInt rownr, const uInt *dataPtr)
uInt convertRownr(uInt rownr)
Convert the rownr to the rownr in the underlying table.
int dataType() const
Get the data type of the column as defined in DataType.h.
void getuShortV(uInt rownr, uShort *dataPtr)
Virtual column engine forwarding to other columns.
Bool isShapeDefined(uInt rownr)
Is the value shape defined in the given row?
void getSliceV(uInt rownr, const Slicer &slicer, void *dataPtr)
Get a section of the array in the given row.
uInt convertRownr(uInt rownr)
Convert the rownr to the rownr in the underlying table.
void getuIntV(uInt rownr, uInt *dataPtr)
void putIntV(uInt rownr, const Int *dataPtr)
Bool canAccessScalarColumn(Bool &reask) const
This data manager cannot do get/putColumn.
uInt ndim(uInt rownr)
Get the dimensionality of the item in the given row.
void getDComplexV(uInt rownr, DComplex *dataPtr)
void getArrayV(uInt rownr, void *dataPtr)
Get the array value in the given row.
void getShortV(uInt rownr, Short *dataPtr)
void getIntV(uInt rownr, Int *dataPtr)
ForwardColumnIndexedRow(ForwardColumnIndexedRowEngine *enginePtr, const String &columnName, int dataType, const String &dataTypeId, const Table &referencedTable)
Construct it for the given column.
void putOtherV(uInt rownr, const void *dataPtr)
Put the scalar value with a non-standard data type into the given row.
ForwardColumnIndexedRow & operator=(const ForwardColumnIndexedRow &)
Assignment is not needed and therefore forbidden (so make it private).
void putDComplexV(uInt rownr, const DComplex *dataPtr)
void getdoubleV(uInt rownr, double *dataPtr)
std::complex< Double > DComplex
void putfloatV(uInt rownr, const float *dataPtr)
void getOtherV(uInt rownr, void *dataPtr)
Get the scalar value with a non-standard data type in the given row.
Virtual column forwarding to another column.
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
String dataTypeId() const
Get the data type id of the column for dataType==TpOther.
void putSliceV(uInt rownr, const Slicer &slicer, const void *dataPtr)
Put into a section of the array in the given row.
void putBoolV(uInt rownr, const Bool *dataPtr)
Put the scalar value with a standard data type into the given row.
ScalarColumn< uInt > rowColumn_p
ForwardColumnIndexedRowEngine * enginePtr_p
void putdoubleV(uInt rownr, const double *dataPtr)
void getBoolV(uInt rownr, Bool *dataPtr)
Get the scalar value with a standard data type in the given row.
~ForwardColumnIndexedRow()
Destructor is mandatory.
String rowColumnName_p
Define the column with the row numbers (must have data type uInt).
void getfloatV(uInt rownr, float *dataPtr)
A drop-in replacement for Block<T*>.
Specify which elements to extract from an n-dimensional array.
Abstract base class for a data manager.
void getuCharV(uInt rownr, uChar *dataPtr)
Virtual column engine forwarding to other columns/rows.
void prepare(const Table &thisTable)
Initialize the object.
Bool canAccessColumnSlice(Bool &reask) const
This data manager cannot do get/putColumn.
String: the storage and methods of handling collections of characters.
void putuShortV(uInt rownr, const uShort *dataPtr)
void putArrayV(uInt rownr, const void *dataPtr)
Put the array value into the given row.
Virtual column forwarding to another row/column.
this file contains all the compiler specific defines
void getStringV(uInt rownr, String *dataPtr)