casacore
|
Base class for columns of the DyscoStMan. More...
#include <dyscostmancol.h>
Public Member Functions | |
DyscoStManColumn (DyscoStMan *parent, int dtype) | |
Constructor, to be overloaded by subclass. More... | |
virtual | ~DyscoStManColumn () |
Destructor. More... | |
virtual void | shutdown ()=0 |
To be called before destructing the class. More... | |
virtual casacore::Bool | isWritable () const override |
Whether this column is writable. More... | |
virtual void | Prepare (DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation)=0 |
virtual void | InitializeAfterNRowsPerBlockIsKnown ()=0 |
virtual size_t | CalculateBlockSize (size_t nRowsInBlock, size_t nAntennae) const =0 |
virtual size_t | ExtraHeaderSize () const |
Get number of bytes needed for column header of this column. More... | |
virtual void | SerializeExtraHeader (std::ostream &stream) const =0 |
virtual void | UnserializeExtraHeader (std::istream &stream)=0 |
size_t | OffsetInBlock () const |
void | SetOffsetInBlock (size_t offsetInBlock) |
![]() | |
StManColumnBase (int dataType) | |
Default constructor. More... | |
~StManColumnBase () | |
virtual int | dataType () const |
Return the data type of the column. More... | |
DataType | dtype () const |
Int | elemSize () const |
Return the size of an element of the column's data type. More... | |
![]() | |
DataManagerColumn () | |
Create a column. More... | |
virtual | ~DataManagerColumn () |
Frees up the storage. More... | |
void | setIsFixedShape (Bool isFixedShape) |
Set the isFixedShape flag. More... | |
Bool | isFixedShape () const |
Is this a fixed shape column? More... | |
virtual String | dataTypeId () const |
Get the data type id of the column for dataType==TpOther. More... | |
virtual void | setMaxLength (uInt maxLength) |
Set the maximum length of the value (can be used for strings). More... | |
void | setFixedShapeColumn (const IPosition &shape) |
Set the shape of all (fixed-shaped) arrays in the column. More... | |
virtual void | setShape (rownr_t rownr, const IPosition &shape) |
Set the shape of an (variable-shaped) array in the given row. More... | |
virtual void | setShapeTiled (rownr_t rownr, const IPosition &shape, const IPosition &tileShape) |
Set the shape and tile shape of an (variable-shaped) array in the given row. More... | |
virtual Bool | isShapeDefined (rownr_t rownr) |
Is the value shape defined in the given row? By default it returns True. More... | |
virtual uInt | ndim (rownr_t rownr) |
Get the dimensionality of the item in the given row. More... | |
virtual IPosition | shape (rownr_t rownr) |
Get the shape of the item in the given row. More... | |
virtual IPosition | tileShape (rownr_t rownr) |
Get the tile shape of the item in the given row. More... | |
virtual Bool | canChangeShape () const |
Can the data manager handle chaging the shape of an existing array? Default is no. More... | |
ColumnCache & | columnCache () |
Get access to the ColumnCache object. More... | |
const ColumnCache * | columnCachePtr () const |
void | get (rownr_t rownr, Bool *dataPtr) |
Get the scalar value in the given row. More... | |
void | get (rownr_t rownr, uChar *dataPtr) |
void | get (rownr_t rownr, Short *dataPtr) |
void | get (rownr_t rownr, uShort *dataPtr) |
void | get (rownr_t rownr, Int *dataPtr) |
void | get (rownr_t rownr, uInt *dataPtr) |
void | get (rownr_t rownr, Int64 *dataPtr) |
void | get (rownr_t rownr, float *dataPtr) |
void | get (rownr_t rownr, double *dataPtr) |
void | get (rownr_t rownr, Complex *dataPtr) |
void | get (rownr_t rownr, DComplex *dataPtr) |
void | get (rownr_t rownr, String *dataPtr) |
void | get (rownr_t rownr, void *dataPtr) |
This function is the get for all non-standard data types. More... | |
void | put (rownr_t rownr, const Bool *dataPtr) |
Put the scalar value into the given row. More... | |
void | put (rownr_t rownr, const uChar *dataPtr) |
void | put (rownr_t rownr, const Short *dataPtr) |
void | put (rownr_t rownr, const uShort *dataPtr) |
void | put (rownr_t rownr, const Int *dataPtr) |
void | put (rownr_t rownr, const uInt *dataPtr) |
void | put (rownr_t rownr, const Int64 *dataPtr) |
void | put (rownr_t rownr, const float *dataPtr) |
void | put (rownr_t rownr, const double *dataPtr) |
void | put (rownr_t rownr, const Complex *dataPtr) |
void | put (rownr_t rownr, const DComplex *dataPtr) |
void | put (rownr_t rownr, const String *dataPtr) |
void | put (rownr_t rownr, const void *dataPtr) |
This function is the put for all non-standard data types. More... | |
virtual void | getScalarColumnV (ArrayBase &dataPtr) |
Get all scalar values in the column. More... | |
virtual void | putScalarColumnV (const ArrayBase &dataPtr) |
Put all scalar values in the column. More... | |
virtual void | getScalarColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr) |
Get some scalar values in the column. More... | |
virtual void | putScalarColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr) |
Put some scalar values in the column. More... | |
virtual void | getArrayV (rownr_t rownr, ArrayBase &dataPtr) |
Get the array value in the given row. More... | |
virtual void | putArrayV (rownr_t rownr, const ArrayBase &data) |
Put the array value into the given row. More... | |
virtual void | getArrayColumnV (ArrayBase &data) |
Get all array values in the column. More... | |
virtual void | putArrayColumnV (const ArrayBase &data) |
Put all array values in the column. More... | |
virtual void | getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data) |
Get some array values in the column. More... | |
virtual void | putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &data) |
Put some array values in the column. More... | |
virtual void | getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &data) |
Get a section of the array in the given row. More... | |
virtual void | putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &data) |
Put into a section of the array in the given row. More... | |
virtual void | getColumnSliceV (const Slicer &slicer, ArrayBase &data) |
Get a section of all arrays in the column. More... | |
virtual void | putColumnSliceV (const Slicer &slicer, const ArrayBase &data) |
Put into a section of all arrays in the column. More... | |
virtual void | getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) |
Get a section of some arrays in the column. More... | |
virtual void | putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) |
Put into a section of some arrays in the column. More... | |
void | throwGet () const |
Throw an "invalid operation" exception for the default implementation of get. More... | |
void | throwPut () const |
Throw an "invalid operation" exception for the default implementation of put. More... | |
void | setColumnName (const String &colName) |
Set the column name. More... | |
const String & | columnName () const |
Get rhe column name. More... | |
Protected Member Functions | |
DyscoStMan & | storageManager () const |
Get the storage manager for this column. More... | |
void | readCompressedData (size_t blockIndex, unsigned char *dest, size_t size) |
Read a row of compressed data from the stman file. More... | |
void | writeCompressedData (size_t blockIndex, const unsigned char *data, size_t size) |
Write a row of compressed data to the stman file. More... | |
uint64_t | nBlocksInFile () const |
Get the actual number of blocks in the file. More... | |
size_t | getBlockIndex (uint64_t row) const |
size_t | getRowWithinBlock (uint64_t row) const |
size_t | nRowsInBlock () const |
size_t | nAntennae () const |
uint64_t | getRowIndex (size_t block) const |
bool | areOffsetsInitialized () const |
void | initializeRowsPerBlock (size_t rowsPerBlock, size_t antennaCount) |
![]() | |
virtual void | getBool (rownr_t rownr, Bool *dataPtr) |
Get the scalar value in the given row. More... | |
virtual void | getuChar (rownr_t rownr, uChar *dataPtr) |
virtual void | getShort (rownr_t rownr, Short *dataPtr) |
virtual void | getuShort (rownr_t rownr, uShort *dataPtr) |
virtual void | getInt (rownr_t rownr, Int *dataPtr) |
virtual void | getuInt (rownr_t rownr, uInt *dataPtr) |
virtual void | getInt64 (rownr_t rownr, Int64 *dataPtr) |
virtual void | getfloat (rownr_t rownr, float *dataPtr) |
virtual void | getdouble (rownr_t rownr, double *dataPtr) |
virtual void | getComplex (rownr_t rownr, Complex *dataPtr) |
virtual void | getDComplex (rownr_t rownr, DComplex *dataPtr) |
virtual void | getString (rownr_t rownr, String *dataPtr) |
virtual void | getOther (rownr_t rownr, void *dataPtr) |
This function is the get for all non-standard data types. More... | |
virtual void | putBool (rownr_t rownr, const Bool *dataPtr) |
Put the scalar value into the given row. More... | |
virtual void | putuChar (rownr_t rownr, const uChar *dataPtr) |
virtual void | putShort (rownr_t rownr, const Short *dataPtr) |
virtual void | putuShort (rownr_t rownr, const uShort *dataPtr) |
virtual void | putInt (rownr_t rownr, const Int *dataPtr) |
virtual void | putuInt (rownr_t rownr, const uInt *dataPtr) |
virtual void | putInt64 (rownr_t rownr, const Int64 *dataPtr) |
virtual void | putfloat (rownr_t rownr, const float *dataPtr) |
virtual void | putdouble (rownr_t rownr, const double *dataPtr) |
virtual void | putComplex (rownr_t rownr, const Complex *dataPtr) |
virtual void | putDComplex (rownr_t rownr, const DComplex *dataPtr) |
virtual void | putString (rownr_t rownr, const String *dataPtr) |
virtual void | putOther (rownr_t rownr, const void *dataPtr) |
This function is the put for all non-standard data types. More... | |
void | getScalarColumnBase (ArrayBase &dataPtr) |
The default implementations of get and put functions. More... | |
void | putScalarColumnBase (const ArrayBase &dataPtr) |
void | getScalarColumnCellsBase (const RefRows &rownrs, ArrayBase &dataPtr) |
void | putScalarColumnCellsBase (const RefRows &rownrs, const ArrayBase &dataPtr) |
void | getArrayColumnBase (ArrayBase &data) |
void | putArrayColumnBase (const ArrayBase &data) |
void | getArrayColumnCellsBase (const RefRows &rownrs, ArrayBase &data) |
void | putArrayColumnCellsBase (const RefRows &rownrs, const ArrayBase &data) |
void | getSliceBase (rownr_t rownr, const Slicer &slicer, ArrayBase &data) |
void | putSliceBase (rownr_t rownr, const Slicer &slicer, const ArrayBase &data) |
void | getColumnSliceBase (const Slicer &slicer, ArrayBase &data) |
void | putColumnSliceBase (const Slicer &slicer, const ArrayBase &data) |
void | getColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) |
void | putColumnSliceCellsBase (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) |
Private Member Functions | |
DyscoStManColumn (const DyscoStManColumn &source)=delete | |
void | operator= (const DyscoStManColumn &source)=delete |
Private Attributes | |
size_t | _offsetInBlock |
DyscoStMan * | _storageManager |
Additional Inherited Members | |
![]() | |
static Bool | isNativeDataType (int dtype) |
Test if the given data type is supported by storage managers. More... | |
Base class for columns of the DyscoStMan.
Definition at line 22 of file dyscostmancol.h.
|
inlineexplicit |
Constructor, to be overloaded by subclass.
parent | The parent stman to which this column belongs. |
dtype | The column's type as defined by Casacore. |
Definition at line 29 of file dyscostmancol.h.
|
inlinevirtual |
Destructor.
Definition at line 35 of file dyscostmancol.h.
|
privatedelete |
|
inlineprotected |
Definition at line 162 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::areOffsetsInitialized().
|
pure virtual |
|
inlinevirtual |
Get number of bytes needed for column header of this column.
This is excluding the generic column header.
Reimplemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.
Definition at line 60 of file dyscostmancol.h.
|
inlineprotected |
Definition at line 142 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::getBlockIndex().
|
inlineprotected |
Definition at line 154 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::getRowIndex().
|
inlineprotected |
Definition at line 158 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::getRowWithinBlock().
|
pure virtual |
|
inlineprotected |
Definition at line 166 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::initializeRowsPerBlock().
|
inlineoverridevirtual |
Whether this column is writable.
true
Reimplemented from casacore::DataManagerColumn.
Definition at line 44 of file dyscostmancol.h.
|
inlineprotected |
Definition at line 150 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::nAntennae().
|
inlineprotected |
Get the actual number of blocks in the file.
Definition at line 138 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::nBlocksInFile().
|
inlineprotected |
Definition at line 146 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::nRowsInBlock().
Referenced by dyscostman::DyscoWeightColumn::symbolCount().
|
inline |
Definition at line 66 of file dyscostmancol.h.
References _offsetInBlock.
|
privatedelete |
|
pure virtual |
|
inlineprotected |
Read a row of compressed data from the stman file.
blockIndex | The block index of the row to read. |
dest | The destination buffer, should be at least of size Stride(). |
size | The nr of bytes to be read. |
Definition at line 126 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::readCompressedData().
|
pure virtual |
|
inline |
Definition at line 68 of file dyscostmancol.h.
References _offsetInBlock.
|
pure virtual |
To be called before destructing the class.
Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.
|
inlineprotected |
Get the storage manager for this column.
Definition at line 74 of file dyscostmancol.h.
References _storageManager.
|
pure virtual |
|
inlineprotected |
Write a row of compressed data to the stman file.
blockIndex | The block index of the row to write. |
data | The data buffer containing Stride() bytes. |
size | The nr of bytes to be written. |
Definition at line 132 of file dyscostmancol.h.
References _storageManager, and dyscostman::DyscoStMan::writeCompressedData().
|
private |
Definition at line 116 of file dyscostmancol.h.
Referenced by OffsetInBlock(), and SetOffsetInBlock().
|
private |
Definition at line 117 of file dyscostmancol.h.
Referenced by areOffsetsInitialized(), getBlockIndex(), getRowIndex(), getRowWithinBlock(), initializeRowsPerBlock(), nAntennae(), nBlocksInFile(), nRowsInBlock(), readCompressedData(), storageManager(), and writeCompressedData().