Go to the documentation of this file.
28 #ifndef TABLES_CONCATCOLUMN_H
29 #define TABLES_CONCATCOLUMN_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/tables/Tables/BaseColumn.h>
35 #include <casacore/tables/Tables/ColumnCache.h>
36 #include <casacore/tables/Tables/TableRecord.h>
46 template<
class T>
class Vector;
175 virtual void get (
uInt rownr,
void* dataPtr)
const;
182 virtual void put (
uInt rownr,
const void* dataPtr);
201 void* dataPtr)
const;
207 const Slicer&,
void* dataPtr)
const;
223 const void* dataPtr);
229 const Slicer&,
const void* dataPtr);
240 virtual void allocIterBuf (
void*& lastVal,
void*& curVal,
244 virtual void freeIterBuf (
void*& lastVal,
void*& curVal);
Specify which elements to extract from an n-dimensional array.
virtual uInt ndim(uInt rownr) const
Get the #dimensions of an array in a particular cell.
void initialize(uInt startRownr, uInt endRownr)
Initialize the rows from startRownr till endRownr (inclusive) with the default value defined in the c...
virtual uInt nrow() const
Get nr of rows in the column.
virtual void putColumnSlice(const Slicer &, const void *dataPtr)
Put into subsections of all table arrays in the column.
A Vector of integers, for indexing into Array<T> objects.
virtual Bool canAccessColumnSlice(Bool &reask) const
It can handle a column slice if the underlying column can handle a collection of cells in a column an...
virtual Bool canChangeShape() const
It can change shape if the underlying column can.
Class to view a concatenation of tables as a single table.
virtual void getColumnSlice(const Slicer &, void *dataPtr) const
Get subsections from all arrays in the column.
virtual void putColumnSliceCells(const RefRows &rownrs, const Slicer &, const void *dataPtr)
Put subsections of some arrays in the column.
virtual void putSlice(uInt rownr, const Slicer &, const void *dataPtr)
Put a slice of an N-dimensional array in a particular cell.
virtual Bool isStored() const
Test if the column is stored (otherwise it is virtual).
A hierarchical collection of named fields of various types.
virtual void getArrayColumnCells(const RefRows &rownrs, void *dataPtr) const
Get the array of some array values in a column.
Referenced counted pointer for constant data.
virtual TableRecord & keywordSet()
virtual IPosition shape(uInt rownr) const
Get the shape of an array in a particular cell.
virtual void putArrayColumnCells(const RefRows &rownrs, const void *dataPtr)
Get the array of some array values in a column.
virtual void put(uInt rownr, const void *dataPtr)
Put the value in a particular cell.
ConcatColumn(const BaseColumnDesc *, ConcatTable *)
Construct the ConcatColumn.
static void getColumnPart(BaseColumn *col, const Slicer *, ArrayBase *arr)
Define the access functions.
Non-templated base class for templated Array class.
virtual Bool canAccessArrayColumn(Bool &reask) const
It can handle an array column if the underlying column can handle cells in an array column.
virtual void setMaximumCacheSize(uInt nbytes)
Set the maximum cache size (in bytes) to be used by a storage manager.
virtual void setShape(uInt rownr, const IPosition &shape)
Set the shape of the array in the given row.
virtual IPosition tileShape(uInt rownr) const
Get the tile shape of an array in a particular cell.
virtual Bool canAccessScalarColumn(Bool &reask) const
It can handle a scalar column if the underlying column can handle cells in a scalar column.
static void putRowsPart(BaseColumn *col, const RefRows &rows, const Slicer *, ArrayBase *array)
virtual void getArrayColumn(void *dataPtr) const
Get the array of all array values in a column.
Class holding the row numbers in a RefTable.
static void putColumnSlicePart(BaseColumn *col, const Slicer *ns, ArrayBase *arr)
Abstract base class for a table column.
static void getColumnSlicePart(BaseColumn *col, const Slicer *ns, ArrayBase *arr)
virtual Bool isWritable() const
Test if the column is writable in the parent table.
virtual Bool canAccessSlice(Bool &reask) const
It can handle a cell slice if the underlying column can do it.
void AccessColumnFunc(BaseColumn *col, const Slicer *, ArrayBase *array)
Define the function to handle access to an entire column.
virtual void putArrayColumn(const void *dataPtr)
Put the array of all array values in the column.
virtual uInt ndimColumn() const
Get the global #dimensions of an array (i.e.
An abstract base class for table column descriptions.
void accessRows(const RefRows &rownrs, const Slicer *ns, void *dataPtr, AccessRowsFunc *) const
Access the data with multiple rows combined.
this file contains all the compiler specific defines
virtual ColumnCache & columnCache()
Get the underlying column cache.
TableExprNode array(const TableExprNode &values, const TableExprNodeSet &shape)
Create an array of the given shape and fill it with the values.
static void getRowsPart(BaseColumn *col, const RefRows &rows, const Slicer *, ArrayBase *array)
virtual IPosition shapeColumn() const
Get the global shape of an array (i.e.
Block< BaseColumn * > refColPtr_p
virtual void getSlice(uInt rownr, const Slicer &, void *dataPtr) const
Get a slice of an N-dimensional array in a particular cell.
void AccessRowsFunc(BaseColumn *col, const RefRows &rows, const Slicer *, ArrayBase *array)
Define the function to handle access to a number of rows.
A caching object for a table column.
virtual Bool canAccessScalarColumnCells(Bool &reask) const
It can handle cells in a scalar column if the underlying column can do it.
static void putRowsSlicePart(BaseColumn *col, const RefRows &rows, const Slicer *, ArrayBase *array)
virtual Bool isDefined(uInt rownr) const
Test if a value in a particular cell has been defined.
bool Bool
Define the standard types used by Casacore.
ConcatTable * refTabPtr_p
virtual void getColumnSliceCells(const RefRows &rownrs, const Slicer &, void *dataPtr) const
Get subsections from some arrays in the column.
static void putColumnPart(BaseColumn *col, const Slicer *, ArrayBase *arr)
static void getRowsSlicePart(BaseColumn *col, const RefRows &rows, const Slicer *, ArrayBase *array)
virtual void get(uInt rownr, void *dataPtr) const
Get the value from a particular cell.
virtual void freeIterBuf(void *&lastVal, void *&curVal)
Free the value buffers allocated by allocIterBuf.
void setColumnCache(uInt tableNr, const ColumnCache &) const
Set the column cache to the cache of the given table.
virtual void allocIterBuf(void *&lastVal, void *&curVal, CountedPtr< BaseCompare > &cmpObj)
Allocate value buffers for the table iterator.
void accessColumn(const Slicer *ns, void *dataPtr, AccessColumnFunc *) const
Access the data for an entire column.
virtual TableRecord & rwKeywordSet()
Get access to the column keyword set.
virtual Bool canAccessArrayColumnCells(Bool &reask) const
It can handle cells in an array column if the underlying column can do it.
A column in a concatenated table.