Go to the documentation of this file.
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);
307 const String& rowColumnName,
317 const String& rowColumnName);
350 const String& dataTypeId);
355 const String& dataTypeId);
void putArrayV(uInt rownr, const void *dataPtr)
Put the array value into the given row.
Specify which elements to extract from an n-dimensional array.
PtrBlock< ForwardColumnIndexedRow * > refColumns_p
Define the various engine column objects.
A Vector of integers, for indexing into Array<T> objects.
DataManagerColumn * makeScalarColumn(const String &columnName, int dataType, const String &dataTypeId)
Create the column object for the scalar column in this engine.
Abstract base class for a data manager.
void putuCharV(uInt rownr, const uChar *dataPtr)
Bool isShapeDefined(uInt rownr)
Is the value shape defined in the given row?
void create(uInt initialNrrow)
Initialize the object for a new table.
A drop-in replacement for Block<T*>.
void putStringV(uInt rownr, const String *dataPtr)
std::complex< Double > DComplex
void putComplexV(uInt rownr, const Complex *dataPtr)
DataManagerColumn * makeIndArrColumn(const String &columnName, int dataType, const String &dataTypeId)
Create the column object for the indirect array column in this engine.
void reopenRW()
Reopen the engine for read/write access.
Int lastRow_p
Cache of last row used to get row number.
void getStringV(uInt rownr, String *dataPtr)
String dataTypeId() const
Get the data type id of the column for dataType==TpOther.
void putfloatV(uInt rownr, const float *dataPtr)
Abstract base class for a column in a data manager.
~ForwardColumnIndexedRowEngine()
Destructor is mandatory.
void getArrayV(uInt rownr, void *dataPtr)
Get the array value in the given row.
uInt ndim(uInt rownr)
Get the dimensionality of the item in the given row.
void getDComplexV(uInt rownr, DComplex *dataPtr)
IPosition shape(uInt rownr)
Get the shape of the item in the given row.
int dataType() const
Get the data type of the column as defined in DataType.h.
Virtual column forwarding to another column.
void getdoubleV(uInt rownr, double *dataPtr)
void putBoolV(uInt rownr, const Bool *dataPtr)
Put the scalar value with a standard data type into the given row.
String dataManagerType() const
Return the type name of the engine (i.e.
const String & columnName() const
Get rhe column name.
void putShortV(uInt rownr, const Short *dataPtr)
void setShape(uInt rownr, const IPosition &shape)
Set the shape of an (indirect) array in the given row.
uInt convertRownr(uInt rownr)
Convert the rownr to the rownr in the underlying table.
Main interface class to a read/write table.
DataManager * clone() const
Clone the engine object.
void prepare()
Initialize the engine.
void putSliceV(uInt rownr, const Slicer &slicer, const void *dataPtr)
Put into a section of the array in the given row.
void getfloatV(uInt rownr, float *dataPtr)
static void registerClass()
Register the class name and the static makeObject "constructor".
void getSliceV(uInt rownr, const Slicer &slicer, void *dataPtr)
Get a section of the array in the given row.
static String className()
Return the name of the class.
void prepare(const Table &thisTable)
Initialize the object.
void putIntV(uInt rownr, const Int *dataPtr)
void getuIntV(uInt rownr, uInt *dataPtr)
void putuIntV(uInt rownr, const uInt *dataPtr)
void getuCharV(uInt rownr, uChar *dataPtr)
void getuShortV(uInt rownr, uShort *dataPtr)
void putuShortV(uInt rownr, const uShort *dataPtr)
this file contains all the compiler specific defines
uInt convertRownr(uInt rownr)
Convert the rownr to the rownr in the underlying table.
ForwardColumnIndexedRow(ForwardColumnIndexedRowEngine *enginePtr, const String &columnName, int dataType, const String &dataTypeId, const Table &referencedTable)
Construct it for the given column.
Virtual column engine forwarding to other columns/rows.
void putOtherV(uInt rownr, const void *dataPtr)
Put the scalar value with a non-standard data type into the given row.
Bool canAccessScalarColumn(Bool &reask) const
This data manager cannot do get/putColumn.
ForwardColumnIndexedRowEngine(const String &dataManagerName, const Record &spec)
The default constructor is required for reconstruction of the engine when a table is read back.
void putDComplexV(uInt rownr, const DComplex *dataPtr)
virtual Record dataManagerSpec() const
Record a record containing data manager specifications.
void getShortV(uInt rownr, Short *dataPtr)
void getIntV(uInt rownr, Int *dataPtr)
String dataManagerName() const
Return the name of the data manager.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
ForwardColumnIndexedRow & operator=(const ForwardColumnIndexedRow &)
Assignment is not needed and therefore forbidden (so make it private).
ScalarColumn< uInt > rowColumn_p
void getOtherV(uInt rownr, void *dataPtr)
Get the scalar value with a non-standard data type in the given row.
void putdoubleV(uInt rownr, const double *dataPtr)
void getInt64V(uInt rownr, Int64 *dataPtr)
String rowColumnName_p
Define the column with the row numbers (must have data type uInt).
String: the storage and methods of handling collections of characters.
static DataManager * makeObject(const String &dataManagerName, const Record &spec)
Define the "constructor" to construct this engine when a table is read back.
Virtual column engine forwarding to other columns.
bool Bool
Define the standard types used by Casacore.
std::complex< Float > Complex
A hierarchical collection of named fields of various types.
Virtual column forwarding to another row/column.
ForwardColumnIndexedRowEngine * enginePtr_p
~ForwardColumnIndexedRow()
Destructor is mandatory.
void putInt64V(uInt rownr, const Int64 *dataPtr)
void getComplexV(uInt rownr, Complex *dataPtr)
Bool canAccessArrayColumn(Bool &reask) const
This data manager cannot do get/putColumn.
void getBoolV(uInt rownr, Bool *dataPtr)
Get the scalar value with a standard data type in the given row.
Bool canChangeShape() const
This data manager cannot handle changing array shapes.
Bool canAccessColumnSlice(Bool &reask) const
This data manager cannot do get/putColumn.