28 #ifndef TABLES_FORWARDCOLROW_H
29 #define TABLES_FORWARDCOLROW_H
39 class ForwardColumnIndexedRowEngine;
95 const Table& referencedTable);
298 const String& rowColumnName,
299 const String& dataManagerName);
308 const String& rowColumnName);
341 const String& dataTypeId);
346 const String& dataTypeId);
A Vector of integers, for indexing into Array<T> objects.
DataManagerColumn * makeIndArrColumn(const String &columnName, int dataType, const String &dataTypeId)
Create the column object for the indirect array column in this engine.
String dataManagerType() const
Return the type name of the engine (i.e.
void reopenRW()
Reopen the engine for read/write access.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
virtual void getOther(rownr_t rownr, void *dataPtr)
Get the scalar value with a non-standard data type in the given row.
Non-templated base class for templated Array class.
virtual void putdouble(rownr_t rownr, const double *dataPtr)
virtual void putOther(rownr_t rownr, const void *dataPtr)
Put the scalar value with a non-standard data type into the given row.
std::complex< Float > Complex
Main interface class to a read/write table.
virtual void putuShort(rownr_t rownr, const uShort *dataPtr)
const String & columnName() const
Get rhe column name.
void getArrayV(rownr_t rownr, ArrayBase &dataPtr)
Get the array value in the given row.
virtual void putInt(rownr_t rownr, const Int *dataPtr)
Abstract base class for a column in a data manager.
PtrBlock< ForwardColumnIndexedRow * > refColumns_p
Define the various engine column objects.
virtual void putfloat(rownr_t rownr, const float *dataPtr)
virtual void getDComplex(rownr_t rownr, DComplex *dataPtr)
virtual void putShort(rownr_t rownr, const Short *dataPtr)
virtual void getComplex(rownr_t rownr, Complex *dataPtr)
virtual void getBool(rownr_t rownr, Bool *dataPtr)
Get the scalar value with a standard data type in the given row.
String dataTypeId() const
Get the data type id of the column for dataType==TpOther.
virtual Record dataManagerSpec() const
Record a record containing data manager specifications.
Virtual column engine forwarding to other columns.
~ForwardColumnIndexedRowEngine()
Destructor is mandatory.
virtual void getuInt(rownr_t rownr, uInt *dataPtr)
Int64 lastRow_p
Cache of last row used to get row number.
void prepare()
Initialize the engine.
virtual void getfloat(rownr_t rownr, float *dataPtr)
virtual void getString(rownr_t rownr, String *dataPtr)
void create64(rownr_t initialNrrow)
Initialize the object for a new table.
virtual void getdouble(rownr_t rownr, double *dataPtr)
ForwardColumnIndexedRow(ForwardColumnIndexedRowEngine *enginePtr, const String &columnName, int dataType, const String &dataTypeId, const Table &referencedTable)
Construct it for the given column.
virtual void getInt(rownr_t rownr, Int *dataPtr)
virtual void getInt64(rownr_t rownr, Int64 *dataPtr)
virtual void getuShort(rownr_t rownr, uShort *dataPtr)
ForwardColumnIndexedRow & operator=(const ForwardColumnIndexedRow &)
Assignment is not needed and therefore forbidden (so make it private).
std::complex< Double > DComplex
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(rownr_t rownr, const Slicer &slicer, const ArrayBase &dataPtr)
Put into a section of the array in the given row.
void getSliceV(rownr_t rownr, const Slicer &slicer, ArrayBase &dataPtr)
Get a section of the array in the given row.
ForwardColumnIndexedRowEngine(const String &dataManagerName, const Record &spec)
The default constructor is required for reconstruction of the engine when a table is read back...
ScalarColumn< uInt > rowColumn_p
ForwardColumnIndexedRowEngine * enginePtr_p
Bool canChangeShape() const
This data manager cannot handle changing array shapes.
~ForwardColumnIndexedRow()
Destructor is mandatory.
String rowColumnName_p
Define the column with the row numbers (must have data type uInt).
static void registerClass()
Register the class name and the static makeObject "constructor".
rownr_t convertRownr(rownr_t rownr)
Convert the rownr to the rownr in the underlying table.
A drop-in replacement for Block<T*>.
virtual void putuInt(rownr_t rownr, const uInt *dataPtr)
static String className()
Return the name of the class.
Specify which elements to extract from an n-dimensional array.
virtual void putDComplex(rownr_t rownr, const DComplex *dataPtr)
virtual void putString(rownr_t rownr, const String *dataPtr)
uInt64 rownr_t
Define the type of a row number in a table.
void putArrayV(rownr_t rownr, const ArrayBase &dataPtr)
Put the array value into the given row.
static DataManager * makeObject(const String &dataManagerName, const Record &spec)
Define the "constructor" to construct this engine when a table is read back.
Bool isShapeDefined(rownr_t rownr)
Is the value shape defined in the given row?
Abstract base class for a data manager.
rownr_t convertRownr(rownr_t rownr)
Convert the rownr to the rownr in the underlying table.
Virtual column engine forwarding to other columns/rows.
void prepare(const Table &thisTable)
Initialize the object.
virtual void getuChar(rownr_t rownr, uChar *dataPtr)
String: the storage and methods of handling collections of characters.
virtual void putComplex(rownr_t rownr, const Complex *dataPtr)
virtual void putBool(rownr_t rownr, const Bool *dataPtr)
Put the scalar value with a standard data type into the given row.
DataManager * clone() const
Clone the engine object.
uInt ndim(rownr_t rownr)
Get the dimensionality of the item in the given row.
virtual void putuChar(rownr_t rownr, const uChar *dataPtr)
IPosition shape(rownr_t rownr)
Get the shape of the item in the given row.
String dataManagerName() const
Return the name of the data manager.
DataManagerColumn * makeScalarColumn(const String &columnName, int dataType, const String &dataTypeId)
Create the column object for the scalar column in this engine.
Virtual column forwarding to another row/column.
virtual void getShort(rownr_t rownr, Short *dataPtr)
int dataType() const
Get the data type of the column as defined in DataType.h.
void setShape(rownr_t rownr, const IPosition &shape)
Set the shape of an (indirect) array in the given row.
virtual void putInt64(rownr_t rownr, const Int64 *dataPtr)