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.
void getComplexV(uInt rownr, Complex *dataPtr)
std::complex< Float > Complex
Main interface class to a read/write table.
const String & columnName() const
Get rhe column name.
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 canAccessColumnSlice(Bool &reask) const
This data manager cannot do get/putColumn.
void putuCharV(uInt rownr, const uChar *dataPtr)
void putShortV(uInt rownr, const Short *dataPtr)
String dataTypeId() const
Get the data type id of the column for dataType==TpOther.
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.
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)
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.
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)
Bool canChangeShape() const
This data manager cannot handle changing array shapes.
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.
Bool canAccessArrayColumn(Bool &reask) const
This data manager cannot do get/putColumn.
void getuCharV(uInt rownr, uChar *dataPtr)
Virtual column engine forwarding to other columns/rows.
void prepare(const Table &thisTable)
Initialize the object.
Bool canAccessScalarColumn(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.
int dataType() const
Get the data type of the column as defined in DataType.h.
this file contains all the compiler specific defines
void getStringV(uInt rownr, String *dataPtr)