28 #ifndef TABLES_ISMINDCOLUMN_H
29 #define TABLES_ISMINDCOLUMN_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/tables/DataMan/ISMColumn.h>
35 #include <casacore/tables/DataMan/StIndArray.h>
36 #include <casacore/casa/Arrays/IPosition.h>
Non-templated base class for templated Array class.
OpenOption
Define the possible ByteIO open options.
ISMIndColumn(const ISMIndColumn &)
Forbid copy constructor.
Bool shapeIsFixed_p
Switch indicating if the shape is fixed.
virtual void getSliceV(rownr_t rownr, const Slicer &, ArrayBase &)
Get a section of the array in the given row.
virtual void putSliceV(rownr_t rownr, const Slicer &, const ArrayBase &)
Put into a section of the array in the given row.
virtual void putArrayV(rownr_t rownr, const ArrayBase &)
Put an array value into the given row.
virtual Bool flush(rownr_t nrrow, Bool fsync)
Flush and optionally fsync the data.
virtual uInt ndim(rownr_t rownr)
Get the dimensionality of the item in the given row.
StIndArray * putArrayPtr(rownr_t rownr, const IPosition &shape, Bool copyData)
When needed, create an array in the given row with the given shape.
virtual void handleRemove(rownr_t rownr, const char *value)
Handle the removal of a value; i.e.
virtual void addRow(rownr_t newNrrow, rownr_t oldNrrow)
Add (newNrrow-oldNrrow) rows to the column.
virtual Bool isShapeDefined(rownr_t rownr)
Is the shape defined (i.e.
virtual void reopenRW()
Let the column reopen its data files for read/write access.
virtual void doCreate(ISMBucket *bucket)
Let the column object create its array file.
virtual void handleCopy(rownr_t rownr, const char *value)
Handle the duplication of a value; i.e.
ISMIndColumn(ISMBase *parent, int dataType, uInt colnr)
Create a column of the given data type.
virtual void resync(rownr_t nrrow)
Resync the storage manager with the new file contents.
virtual Bool canChangeShape() const
This storage manager can handle changing array shapes.
StIndArray * getShape(rownr_t rownr)
Read the shape at the given row.
virtual Bool compareValue(const void *val1, const void *val2) const
Compare the values to check if a value to be put matches the value in the previous or next row.
virtual void setShapeColumn(const IPosition &shape)
Set the (fixed) shape of the arrays in the entire column.
virtual void getFile(rownr_t nrrow)
Let the column object open an existing file.
virtual void getArrayV(rownr_t rownr, ArrayBase &)
Get an array value in the given row.
StIndArray * putShape(rownr_t rownr, const IPosition &shape)
Put the shape for an array being put.
uInt seqnr_p
The (unique) sequence number of the column.
StManArrayFile * iosfile_p
The file containing the arrays.
StIndArray indArray_p
The indirect array object.
void init(ByteIO::OpenOption fileOption)
Initialize part of the object and open/create the file.
virtual IPosition shape(rownr_t rownr)
Get the shape of the array in the given row.
void clear()
Clear the object (used by destructor and init).
IPosition fixedShape_p
The shape of all arrays in case it is fixed.
virtual void setShape(rownr_t rownr, const IPosition &shape)
Set the shape of the array in the given row and allocate the array in the file.
Bool foundArray_p
The indirect array exists for the row interval last accessed.
StIndArray * putShapeSliced(rownr_t rownr)
Put the shape for an array of which a slice is being put.
virtual ~ISMIndColumn()
Frees up the storage.
StIndArray * getArrayPtr(rownr_t rownr)
Return a pointer to the array in the given row (for a get).
ISMIndColumn & operator=(const ISMIndColumn &)
Forbid assignment.
virtual int dataType() const
Return the data type of the column.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.
LatticeExprNode value(const LatticeExprNode &expr)
This function returns the value of the expression without a mask.
uInt64 rownr_t
Define the type of a row number in a table.