28 #ifndef TABLES_SSMCOLUMN_H
29 #define TABLES_SSMCOLUMN_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/tables/DataMan/StManColumnBase.h>
35 #include <casacore/tables/DataMan/SSMBase.h>
36 #include <casacore/casa/Arrays/IPosition.h>
37 #include <casacore/casa/Containers/Block.h>
38 #include <casacore/casa/OS/Conversion.h>
289 return static_cast<char*
>(
itsData);
Non-templated base class for templated Array class.
size_t ValueFunction(void *to, const void *from, size_t nvalues)
Define the signature of a function converting nvalues values from internal to external format or vice...
uInt getRowsPerBucket(uInt aColumn) const
Get rows per bucket for the given column.
uInt itsLocalSize
The sizeof the datatype in local format.
uInt getExternalSizeBytes() const
Get the size of the dataType in bytes!!
uInt itsExternalSizeBytes
Length of column cell value in storage format (0 = variable length).
virtual uInt ndim(rownr_t aRowNr)
Get the dimensionality of the item in the given row.
uInt itsNrCopy
Number of values to be copied.
SSMBase * itsSSMPtr
Pointer to the parent storage manager.
virtual void getShort(rownr_t aRowNr, Short *aDataPtr)
virtual void putInt64(rownr_t aRowNr, const Int64 *aDataPtr)
virtual void deleteRow(rownr_t aRowNr)
Remove the given row from the data bucket and possibly string bucket.
virtual void getFile(rownr_t aNrRows)
Let the column object initialize itself for an existing table.
void removeColumn()
If something special has to be done before removing the Column, as is the case with Strings,...
SSMColumn(SSMBase *aParent, int aDataType, uInt aColNr)
Create a SSMColumn object with the given parent.
virtual void putScalarColumnV(const ArrayBase &aDataPtr)
Put the scalar values of the entire column.
virtual void putdouble(rownr_t aRowNr, const double *aDataPtr)
char * getDataPtr()
Get the pointer to the cache.
virtual void putDComplex(rownr_t aRowNr, const DComplex *aDataPtr)
Char * getRowValue(Int *data, rownr_t aRowNr)
Get the bucketnr, offset, and length of a variable length string.
uInt itsColNr
Column sequence number of this column.
void init()
Initialize part of the object.
virtual void putBool(rownr_t aRowNr, const Bool *aDataPtr)
Put the scalar value in the given row.
virtual void getBool(rownr_t aRowNr, Bool *aDataPtr)
Get the scalar value in the given row.
uInt getColNr()
get the sequence number of this column.
virtual void putInt(rownr_t aRowNr, const Int *aDataPtr)
virtual void getDComplex(rownr_t aRowNr, DComplex *aDataPtr)
virtual void setMaxLength(uInt maxLength)
Set the maximum length of a 'fixed length' string.
void * itsData
The data in local format.
virtual void setShapeColumn(const IPosition &aShape)
Set the shape of an array in the column.
void putValue(rownr_t aRowNr, const void *aValue)
Put the given value for the row into the correct data bucket.
virtual void putfloat(rownr_t aRowNr, const float *aDataPtr)
virtual void putuShort(rownr_t aRowNr, const uShort *aDataPtr)
void getValue(rownr_t aRowNr)
Fill the cache with data of the bucket containing the given row.
virtual void getInt64(rownr_t aRowNr, Int64 *aDataPtr)
virtual void getuInt(rownr_t aRowNr, uInt *aDataPtr)
uInt itsMaxLen
The maximum length of a 'fixed length' string.
Conversion::ValueFunction * itsWriteFunc
Pointer to a convert function for writing.
virtual void putString(rownr_t aRowNr, const String *aDataPtr)
IPosition itsShape
The shape of the column.
void shiftRows(char *aValue, rownr_t rowNr, rownr_t startRow, rownr_t endRow)
Shift the rows in the bucket one to the left when removing the given row.
uInt itsNrElem
Number of elements in a value for this column.
virtual void putComplex(rownr_t aRowNr, const Complex *aDataPtr)
virtual void getComplex(rownr_t aRowNr, Complex *aDataPtr)
virtual void getInt(rownr_t aRowNr, Int *aDataPtr)
SSMColumn(const SSMColumn &)
Forbid copy constructor.
void putValueShortString(rownr_t aRowNr, const void *aValue, const String &string)
Put the given string for the row into the correct data bucket.
Conversion::ValueFunction * itsReadFunc
Pointer to a convert function for reading.
virtual void getString(rownr_t aRowNr, String *aDataPtr)
virtual void putuInt(rownr_t aRowNr, const uInt *aDataPtr)
virtual void getdouble(rownr_t aRowNr, double *aDataPtr)
virtual void getfloat(rownr_t aRowNr, float *aDataPtr)
virtual void getuShort(rownr_t aRowNr, uShort *aDataPtr)
virtual void addRow(rownr_t aNewNrRows, rownr_t anOldNrRows, Bool doInit)
Add (NewNrRows-OldNrRows) rows to the Column and initialize the new rows when needed.
virtual void getuChar(rownr_t aRowNr, uChar *aDataPtr)
void resync(rownr_t aNrRow)
Resync the storage manager with the new file contents.
virtual void putShort(rownr_t aRowNr, const Short *aDataPtr)
virtual void getScalarColumnV(ArrayBase &aDataPtr)
Get the scalar values of the entire column.
virtual void putuChar(rownr_t aRowNr, const uChar *aDataPtr)
SSMColumn & operator=(const SSMColumn &)
Forbid assignment.
virtual void doCreate(rownr_t aNrRows)
Let the object initialize itself for a newly created table.
void putColumnValue(const void *anArray, rownr_t aNrRows)
Put the values from the array in the entire column.
void setColNr(uInt aColNr)
set the sequence number of this column.
virtual IPosition shape(rownr_t aRowNr)
Get the shape of the array in the given row.
void getColumnValue(void *anArray, rownr_t aNrRows)
Get the values for the entire column.
uInt getExternalSizeBits() const
Get the size of the dataType in bits!!
String: the storage and methods of handling collections of characters.
std::complex< Float > Complex
std::complex< Double > DComplex
this file contains all the compiler specific defines
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.