26#ifndef TABLES_ISMINDCOLUMN_H
27#define TABLES_ISMINDCOLUMN_H
31#include <casacore/casa/aips.h>
32#include <casacore/tables/DataMan/ISMColumn.h>
33#include <casacore/tables/DataMan/StIndArray.h>
34#include <casacore/casa/Arrays/IPosition.h>
Non-templated base class for templated Array class.
OpenOption
Define the possible ByteIO open options.
ISMColumn(ISMBase *parent, int dataType, uInt colnr)
Create a ISMColumn object with the given parent.
StIndArray * putArrayPtr(rownr_t rownr, const IPosition &shape, Bool copyData)
When needed, create an array in the given row with the given shape.
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.
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.
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.
ISMIndColumn & operator=(const ISMIndColumn &)=delete
Forbid assignment.
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.
StIndArray * getShape(rownr_t rownr)
Read the shape at the given row.
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.
ISMIndColumn(const ISMIndColumn &)=delete
Forbid copy constructor.
StIndArray * putShapeSliced(rownr_t rownr)
Put the shape for an array of which a slice is being put.
void clear()
Clear the object (used by destructor and init).
IPosition fixedShape_p
The shape of all arrays in case it is fixed.
StIndArray * getArrayPtr(rownr_t rownr)
Return a pointer to the array in the given row (for a get).
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.
virtual ~ISMIndColumn()
Frees up the storage.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.
NewDelAllocator< T > NewDelAllocator< T >::value
uInt64 rownr_t
Define the type of a row number in a table.
DataType dataType(const RecordFieldId &) const