Loading...
Searching...
No Matches
dyscostman::DyscoStManColumn Class Referenceabstract

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.
virtual | ~DyscoStManColumn ()
| Destructor.
virtual void | shutdown ()=0
| To be called before destructing the class.
virtual casacore::Bool | isWritable () const override
| Whether this column is writable.
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.
virtual void | SerializeExtraHeader (std::ostream &stream) const =0
virtual void | UnserializeExtraHeader (std::istream &stream)=0
size_t | OffsetInBlock () const
void | SetOffsetInBlock (size_t offsetInBlock)
Public Member Functions inherited from casacore::StManColumnBase
| StManColumnBase (int dataType)
| Default constructor.
| ~StManColumnBase ()
| StManColumnBase (const StManColumnBase &)=delete
| The object cannot be copied.
StManColumnBase & | operator= (const StManColumnBase &)=delete
| The object cannot be assigned to.
virtual int | dataType () const
| Return the data type of the column.
DataType | dtype () const
Int | elemSize () const
| Return the size of an element of the column's data type.
Public Member Functions inherited from casacore::DataManagerColumn
| DataManagerColumn ()
| Create a column.
virtual | ~DataManagerColumn ()
| Frees up the storage.
| DataManagerColumn (const DataManagerColumn &)=delete
| The copy constructor cannot be used for this base class.
DataManagerColumn & | operator= (const DataManagerColumn &)=delete
| Assignment cannot be used for this base class.
void | setIsFixedShape (Bool isFixedShape)
| Set the isFixedShape flag.
Bool | isFixedShape () const
| Is this a fixed shape column?
virtual String | dataTypeId () const
| Get the data type id of the column for dataType==TpOther.
virtual void | setMaxLength (uInt maxLength)
| Set the maximum length of the value (can be used for strings).
void | setFixedShapeColumn (const IPosition &shape)
| Set the shape of all (fixed-shaped) arrays in the column.
virtual void | setShape (rownr_t rownr, const IPosition &shape)
| Set the shape of an (variable-shaped) array in the given row.
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.
virtual Bool | isShapeDefined (rownr_t rownr)
| Is the value shape defined in the given row?
virtual uInt | ndim (rownr_t rownr)
| Get the dimensionality of the item in the given row.
virtual IPosition | shape (rownr_t rownr)
| Get the shape of the item in the given row.
virtual IPosition | tileShape (rownr_t rownr)
| Get the tile shape of the item in the given row.
virtual Bool | canChangeShape () const
| Can the data manager handle chaging the shape of an existing array?
ColumnCache & | columnCache ()
| Get access to the ColumnCache object.
const ColumnCache * | columnCachePtr () const
void | get (rownr_t rownr, Bool *dataPtr)
| Get the scalar value in the given row.
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.
void | put (rownr_t rownr, const Bool *dataPtr)
| Put the scalar value into the given row.
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.
virtual void | getScalarColumnV (ArrayBase &dataPtr)
| Get all scalar values in the column.
virtual void | putScalarColumnV (const ArrayBase &dataPtr)
| Put all scalar values in the column.
virtual void | getScalarColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr)
| Get some scalar values in the column.
virtual void | putScalarColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr)
| Put some scalar values in the column.
virtual void | getArrayV (rownr_t rownr, ArrayBase &dataPtr)
| Get the array value in the given row.
virtual void | putArrayV (rownr_t rownr, const ArrayBase &data)
| Put the array value into the given row.
virtual void | getArrayColumnV (ArrayBase &data)
| Get all array values in the column.
virtual void | putArrayColumnV (const ArrayBase &data)
| Put all array values in the column.
virtual void | getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &data)
| Get some array values in the column.
virtual void | putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &data)
| Put some array values in the column.
virtual void | getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &data)
| Get a section of the array in the given row.
virtual void | putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &data)
| Put into a section of the array in the given row.
virtual void | getColumnSliceV (const Slicer &slicer, ArrayBase &data)
| Get a section of all arrays in the column.
virtual void | putColumnSliceV (const Slicer &slicer, const ArrayBase &data)
| Put into a section of all arrays in the column.
virtual void | getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &data)
| Get a section of some arrays in the column.
virtual void | putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data)
| Put into a section of some arrays in the column.
void | throwGet () const
| Throw an "invalid operation" exception for the default implementation of get.
void | throwPut () const
| Throw an "invalid operation" exception for the default implementation of put.
void | setColumnName (const String &colName)
| Set the column name.
const String & | columnName () const
| Get rhe column name.

## Protected Member Functions

DyscoStMan & | storageManager () const
| Get the storage manager for this column.
void | readCompressedData (size_t blockIndex, unsigned char *dest, size_t size)
| Read a row of compressed data from the stman file.
void | writeCompressedData (size_t blockIndex, const unsigned char *data, size_t size)
| Write a row of compressed data to the stman file.
uint64_t | nBlocksInFile () const
| Get the actual number of blocks in the file.
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)
Protected Member Functions inherited from casacore::DataManagerColumn
virtual void | getBool (rownr_t rownr, Bool *dataPtr)
| Get the scalar value in the given row.
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.
virtual void | putBool (rownr_t rownr, const Bool *dataPtr)
| Put the scalar value into the given row.
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.
void | getScalarColumnBase (ArrayBase &dataPtr)
| The default implementations of get and put functions.
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 Public Member Functions inherited from casacore::StManColumnBase
static Bool | isNativeDataType (int dtype)
| Test if the given data type is supported by storage managers.

## Detailed Description

Base class for columns of the DyscoStMan.

Author
  André Dysco

Definition at line 22 of file dyscostmancol.h.

## Constructor & Destructor Documentation

## DyscoStManColumn() [1/2]

dyscostman::DyscoStManColumn::DyscoStManColumn | ( | DyscoStMan * | parent,
|  | int | dtype )

inline explicit

Constructor, to be overloaded by subclass.

Parameters

  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.

References _offsetInBlock, _storageManager, casacore::StManColumnBase::dtype(), and casacore::StManColumnBase::StManColumnBase().

Referenced by DyscoStManColumn(), and operator=().

## ~DyscoStManColumn()

virtual dyscostman::DyscoStManColumn::~DyscoStManColumn | ( |  | ) |

inline virtual

Destructor.

Definition at line 35 of file dyscostmancol.h.

## DyscoStManColumn() [2/2]

dyscostman::DyscoStManColumn::DyscoStManColumn | ( | const DyscoStManColumn & | source | ) |

private delete

References DyscoStManColumn().

## Member Function Documentation

## areOffsetsInitialized()

bool dyscostman::DyscoStManColumn::areOffsetsInitialized | ( |  | ) | const

inline protected

Definition at line 162 of file dyscostmancol.h.

References _storageManager.

## CalculateBlockSize()

virtual size_t dyscostman::DyscoStManColumn::CalculateBlockSize | ( | size_t | nRowsInBlock,
|  | size_t | nAntennae ) const

pure virtual

Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

References nAntennae(), and nRowsInBlock().

## ExtraHeaderSize()

virtual size_t dyscostman::DyscoStManColumn::ExtraHeaderSize | ( |  | ) | const

inline virtual

Get number of bytes needed for column header of this column.

This is excluding the generic column header.

Returns
  Size of column header

Reimplemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

Definition at line 60 of file dyscostmancol.h.

## getBlockIndex()

size_t dyscostman::DyscoStManColumn::getBlockIndex | ( | uint64_t | row | ) | const

inline protected

Definition at line 142 of file dyscostmancol.h.

References _storageManager.

## getRowIndex()

uint64_t dyscostman::DyscoStManColumn::getRowIndex | ( | size_t | block | ) | const

inline protected

Definition at line 154 of file dyscostmancol.h.

References _storageManager.

## getRowWithinBlock()

size_t dyscostman::DyscoStManColumn::getRowWithinBlock | ( | uint64_t | row | ) | const

inline protected

Definition at line 158 of file dyscostmancol.h.

References _storageManager.

## InitializeAfterNRowsPerBlockIsKnown()

virtual void dyscostman::DyscoStManColumn::InitializeAfterNRowsPerBlockIsKnown | ( |  | ) |

pure virtual

Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## initializeRowsPerBlock()

void dyscostman::DyscoStManColumn::initializeRowsPerBlock | ( | size_t | rowsPerBlock,
|  | size_t | antennaCount )

inline protected

Definition at line 166 of file dyscostmancol.h.

References _storageManager.

## isWritable()

virtual casacore::Bool dyscostman::DyscoStManColumn::isWritable | ( |  | ) | const

inline override virtual

Whether this column is writable.

Returns
  `true`

Reimplemented from casacore::DataManagerColumn.

Definition at line 44 of file dyscostmancol.h.

## nAntennae()

size_t dyscostman::DyscoStManColumn::nAntennae | ( |  | ) | const

inline protected

Definition at line 150 of file dyscostmancol.h.

References _storageManager.

Referenced by CalculateBlockSize(), dyscostman::ThreadedDyscoColumn< DataType >::CalculateBlockSize(), dyscostman::DyscoDataColumn::encode(), dyscostman::DyscoWeightColumn::encode(), dyscostman::ThreadedDyscoColumn< DataType >::encode(), dyscostman::DyscoDataColumn::initializeDecode(), dyscostman::DyscoWeightColumn::initializeDecode(), dyscostman::ThreadedDyscoColumn< DataType >::initializeDecode(), dyscostman::DyscoDataColumn::metaDataFloatCount(), and dyscostman::ThreadedDyscoColumn< DataType >::metaDataFloatCount().

## nBlocksInFile()

uint64_t dyscostman::DyscoStManColumn::nBlocksInFile | ( |  | ) | const

inline protected

Get the actual number of blocks in the file.

Definition at line 138 of file dyscostmancol.h.

References _storageManager.

## nRowsInBlock()

size_t dyscostman::DyscoStManColumn::nRowsInBlock | ( |  | ) | const

inline protected

Definition at line 146 of file dyscostmancol.h.

References _storageManager.

Referenced by CalculateBlockSize(), dyscostman::ThreadedDyscoColumn< DataType >::CalculateBlockSize(), dyscostman::DyscoDataColumn::symbolCount(), dyscostman::DyscoWeightColumn::symbolCount(), and dyscostman::ThreadedDyscoColumn< DataType >::symbolCount().

## OffsetInBlock()

size_t dyscostman::DyscoStManColumn::OffsetInBlock | ( |  | ) | const

inline

Definition at line 66 of file dyscostmancol.h.

References _offsetInBlock.

## operator=()

void dyscostman::DyscoStManColumn::operator= | ( | const DyscoStManColumn & | source | ) |

private delete

References DyscoStManColumn().

## Prepare()

virtual void dyscostman::DyscoStManColumn::Prepare | ( | DyscoDistribution | distribution,
|  | Normalization | normalization,
|  | double | studentsTNu,
|  | double | distributionTruncation )

pure virtual

Implemented in dyscostman::DyscoDataColumn, dyscostman::DyscoWeightColumn, dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## readCompressedData()

void dyscostman::DyscoStManColumn::readCompressedData | ( | size_t | blockIndex,
|  | unsigned char * | dest,
|  | size_t | size )

inline protected

Read a row of compressed data from the stman file.

Parameters

  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.

## SerializeExtraHeader()

virtual void dyscostman::DyscoStManColumn::SerializeExtraHeader | ( | std::ostream & | stream | ) | const

pure virtual

Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## SetOffsetInBlock()

void dyscostman::DyscoStManColumn::SetOffsetInBlock | ( | size_t | offsetInBlock | ) |

inline

Definition at line 68 of file dyscostmancol.h.

References _offsetInBlock.

## shutdown()

virtual void dyscostman::DyscoStManColumn::shutdown | ( |  | ) |

pure virtual

To be called before destructing the class.

Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## storageManager()

DyscoStMan & dyscostman::DyscoStManColumn::storageManager | ( |  | ) | const

inline protected

Get the storage manager for this column.

Definition at line 74 of file dyscostmancol.h.

References _storageManager.

## UnserializeExtraHeader()

virtual void dyscostman::DyscoStManColumn::UnserializeExtraHeader | ( | std::istream & | stream | ) |

pure virtual

Implemented in dyscostman::ThreadedDyscoColumn< DataType >, dyscostman::ThreadedDyscoColumn< float >, and dyscostman::ThreadedDyscoColumn< std::complex< float > >.

## writeCompressedData()

void dyscostman::DyscoStManColumn::writeCompressedData | ( | size_t | blockIndex,
|  | const unsigned char * | data,
|  | size_t | size )

inline protected

Write a row of compressed data to the stman file.

Parameters

  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.

## Member Data Documentation

## _offsetInBlock

size_t dyscostman::DyscoStManColumn::_offsetInBlock

private

Definition at line 116 of file dyscostmancol.h.

Referenced by DyscoStManColumn(), OffsetInBlock(), and SetOffsetInBlock().

## _storageManager

DyscoStMan* dyscostman::DyscoStManColumn::_storageManager

private

Definition at line 117 of file dyscostmancol.h.

Referenced by areOffsetsInitialized(), DyscoStManColumn(), getBlockIndex(), getRowIndex(), getRowWithinBlock(), initializeRowsPerBlock(), nAntennae(), nBlocksInFile(), nRowsInBlock(), readCompressedData(), storageManager(), and writeCompressedData().

The documentation for this class was generated from the following file:

- tables/Dysco/dyscostmancol.h