Loading...
Searching...
No Matches
dyscostman::ThreadedDyscoColumn< DataType > Class Template Referenceabstract

A column for storing compressed values in a threaded way, tailored for the data and weight columns that use a threaded approach for encoding. More...

`#include <threadeddyscocolumn.h>`

## Classes

class | ThreadDataBase
struct | CacheItem
struct | EncodingThreadFunctor
struct | Header

## Public Types

typedef DataType | data_t

## Public Member Functions

| ThreadedDyscoColumn (DyscoStMan *parent, int dtype)
| Create a new column.
| ThreadedDyscoColumn (const ThreadedDyscoColumn &source)=delete
void | operator= (const ThreadedDyscoColumn &source)=delete
virtual | ~ThreadedDyscoColumn ()
| Destructor.
virtual void | setShapeColumn (const casacore::IPosition &shape) override
| Set the dimensions of values in this column.
virtual casacore::IPosition | shape (casacore::rownr_t) override
| Get the dimensions of the values in a particular row.
virtual void | getArrayV (casacore::rownr_t rowNr, casacore::ArrayBase &dataPtr) override
| Read the values for a particular row.
virtual void | putArrayV (casacore::rownr_t rowNr, const casacore::ArrayBase &dataPtr) override
| Write values into a particular row.
virtual void | Prepare (DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation) override
virtual void | InitializeAfterNRowsPerBlockIsKnown () override
| Prepare this column for reading/writing.
void | SetBitsPerSymbol (unsigned bitsPerSymbol)
| Set the bits per symbol.
virtual size_t | CalculateBlockSize (size_t nRowsInBlock, size_t nAntennae) const final override
virtual size_t | ExtraHeaderSize () const override
| Get number of bytes needed for column header of this column.
virtual void | SerializeExtraHeader (std::ostream &stream) const final override
virtual void | UnserializeExtraHeader (std::istream &stream) final override
void | getArrayV (casacore::rownr_t rowNr, casacore::ArrayBase &dataPtr)
void | putArrayV (casacore::rownr_t rowNr, const casacore::ArrayBase &dataPtr)
void | getArrayV (casacore::rownr_t rowNr, casacore::ArrayBase &dataPtr)
void | putArrayV (casacore::rownr_t rowNr, const casacore::ArrayBase &dataPtr)
Public Member Functions inherited from dyscostman::DyscoStManColumn
| DyscoStManColumn (DyscoStMan *parent, int dtype)
| Constructor, to be overloaded by subclass.
virtual | ~DyscoStManColumn ()
| Destructor.
virtual casacore::Bool | isWritable () const override
| Whether this column is writable.
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 Types

typedef TimeBlockBuffer< data_t >::symbol_t | symbol_t

## Protected Member Functions

virtual void | initializeDecode (TimeBlockBuffer< data_t > *buffer, const float *metaBuffer, size_t nRow, size_t nAntennae)=0
virtual void | decode (TimeBlockBuffer< data_t > *buffer, const symbol_t *data, size_t blockRow, size_t a1, size_t a2)=0
virtual std::unique_ptr< ThreadDataBase > | initializeEncodeThread ()=0
virtual void | encode (ThreadDataBase *threadData, TimeBlockBuffer< data_t > *buffer, float *metaBuffer, symbol_t *symbolBuffer, size_t nAntennae)=0
virtual size_t | metaDataFloatCount (size_t nRow, size_t nPolarizations, size_t nChannels, size_t nAntennae) const =0
virtual size_t | symbolCount (size_t nRowsInBlock, size_t nPolarizations, size_t nChannels) const =0
virtual void | shutdown () override final
| To be called before destructing the class.
virtual size_t | defaultThreadCount () const
size_t | getBitsPerSymbol () const
const casacore::IPosition & | shape () const
Protected Member Functions inherited from dyscostman::DyscoStManColumn
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 Types

typedef std::map< size_t, CacheItem * > | cache_t

## Private Member Functions

void | getValues (casacore::rownr_t rowNr, casacore::Array< data_t > *dataPtr)
void | putValues (casacore::rownr_t rowNr, const casacore::Array< data_t > *dataPtr)
void | stopThreads ()
void | encodeAndWrite (size_t blockIndex, const CacheItem &item, unsigned char *packedSymbolBuffer, unsigned int *unpackedSymbolBuffer, ThreadDataBase *threadUserData)
bool | isWriteItemAvailable (typename cache_t::iterator &i)
void | loadBlock (size_t blockIndex)
void | storeBlock ()
size_t | maxCacheSize () const

## Private Attributes

unsigned | _bitsPerSymbol
casacore::IPosition | _shape
std::unique_ptr< casacore::ScalarColumn< int > > | _ant1Col
std::unique_ptr< casacore::ScalarColumn< int > > | _ant2Col
std::unique_ptr< casacore::ScalarColumn< int > > | _fieldCol
std::unique_ptr< casacore::ScalarColumn< int > > | _dataDescIdCol
std::unique_ptr< casacore::ScalarColumn< double > > | _timeCol
double | _lastWrittenTime
int | _lastWrittenField
int | _lastWrittenDataDescId
aocommon::UVector< unsigned char > | _packedBlockReadBuffer
aocommon::UVector< unsigned int > | _unpackedSymbolReadBuffer
cache_t | _cache
bool | _stopThreads
std::mutex | _mutex
threadgroup | _threadGroup
std::condition_variable | _cacheChangedCondition
size_t | _currentBlock
bool | _isCurrentBlockChanged
size_t | _blockSize
size_t | _antennaCount
std::unique_ptr< TimeBlockBuffer< data_t > > | _timeBlockBuffer

## 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

template<typename DataType>
class dyscostman::ThreadedDyscoColumn< DataType >

A column for storing compressed values in a threaded way, tailored for the data and weight columns that use a threaded approach for encoding.

Author
  André Offringa

Definition at line 32 of file threadeddyscocolumn.h.

## Member Typedef Documentation

## cache_t

template<typename DataType>

typedef std::map<size_t, CacheItem *> dyscostman::ThreadedDyscoColumn< DataType >::cache_t

private

Definition at line 175 of file threadeddyscocolumn.h.

## data_t

template<typename DataType>

typedef DataType dyscostman::ThreadedDyscoColumn< DataType >::data_t

Definition at line 34 of file threadeddyscocolumn.h.

## symbol_t

template<typename DataType>

typedef TimeBlockBuffer<data_t>::symbol_t dyscostman::ThreadedDyscoColumn< DataType >::symbol_t

protected

Definition at line 115 of file threadeddyscocolumn.h.

## Constructor & Destructor Documentation

## ThreadedDyscoColumn() [1/2]

template<typename DataType>

dyscostman::ThreadedDyscoColumn< DataType >::ThreadedDyscoColumn | ( | DyscoStMan * | parent,
|  | int | dtype )

Create a new column.

Internally called by DyscoStMan when creating a new column.

References casacore::StManColumnBase::dtype().

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

## ThreadedDyscoColumn() [2/2]

template<typename DataType>

dyscostman::ThreadedDyscoColumn< DataType >::ThreadedDyscoColumn | ( | const ThreadedDyscoColumn< DataType > & | source | ) |

delete

References ThreadedDyscoColumn().

## ~ThreadedDyscoColumn()

template<typename DataType>

virtual dyscostman::ThreadedDyscoColumn< DataType >::~ThreadedDyscoColumn | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## CalculateBlockSize()

template<typename DataType>

virtual size_t dyscostman::ThreadedDyscoColumn< DataType >::CalculateBlockSize | ( | size_t | nRowsInBlock,
|  | size_t | nAntennae ) const

final override virtual

Implements dyscostman::DyscoStManColumn.

References dyscostman::DyscoStManColumn::nAntennae(), and dyscostman::DyscoStManColumn::nRowsInBlock().

## decode()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::decode | ( | TimeBlockBuffer< data_t > * | buffer,
|  | const symbol_t * | data,
|  | size_t | blockRow,
|  | size_t | a1,
|  | size_t | a2 )

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

## defaultThreadCount()

template<typename DataType>

virtual size_t dyscostman::ThreadedDyscoColumn< DataType >::defaultThreadCount | ( |  | ) | const

protected virtual

Reimplemented in dyscostman::DyscoDataColumn.

References defaultThreadCount().

Referenced by defaultThreadCount(), and maxCacheSize().

## encode()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::encode | ( | ThreadDataBase * | threadData,
|  | TimeBlockBuffer< data_t > * | buffer,
|  | float * | metaBuffer,
|  | symbol_t * | symbolBuffer,
|  | size_t | nAntennae )

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

References dyscostman::DyscoStManColumn::nAntennae().

## encodeAndWrite()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::encodeAndWrite | ( | size_t | blockIndex,
|  | const CacheItem & | item,
|  | unsigned char * | packedSymbolBuffer,
|  | unsigned int * | unpackedSymbolBuffer,
|  | ThreadDataBase * | threadUserData )

private

## ExtraHeaderSize()

template<typename DataType>

virtual size_t dyscostman::ThreadedDyscoColumn< DataType >::ExtraHeaderSize | ( |  | ) | const

inline override 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 from dyscostman::DyscoStManColumn.

Definition at line 103 of file threadeddyscocolumn.h.

References dyscostman::ThreadedDyscoColumn< DataType >::Header::Size().

## getArrayV() [1/3]

void dyscostman::ThreadedDyscoColumn< float >::getArrayV | ( | casacore::rownr_t | rowNr,
|  | casacore::ArrayBase & | dataPtr )

inline

Definition at line 225 of file threadeddyscocolumn.h.

## getArrayV() [2/3]

void dyscostman::ThreadedDyscoColumn< std::complex< float > >::getArrayV | ( | casacore::rownr_t | rowNr,
|  | casacore::ArrayBase & | dataPtr )

inline

Definition at line 215 of file threadeddyscocolumn.h.

## getArrayV() [3/3]

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::getArrayV | ( | casacore::rownr_t | rowNr,
|  | casacore::ArrayBase & | dataPtr )

inline override virtual

Read the values for a particular row.

This will read the required data and decode it.

Parameters

  rowNr | The row number to get the values for.
  dataPtr | The array of values, which should be a contiguous array.

Definition at line 64 of file threadeddyscocolumn.h.

References casacore::DataManagerColumn::getArrayV().

## getBitsPerSymbol()

template<typename DataType>

size_t dyscostman::ThreadedDyscoColumn< DataType >::getBitsPerSymbol | ( |  | ) | const

inline protected

Definition at line 141 of file threadeddyscocolumn.h.

References _bitsPerSymbol, and getBitsPerSymbol().

Referenced by getBitsPerSymbol().

## getValues()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::getValues | ( | casacore::rownr_t | rowNr,
|  | casacore::Array< data_t > * | dataPtr )

private

## InitializeAfterNRowsPerBlockIsKnown()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::InitializeAfterNRowsPerBlockIsKnown | ( |  | ) |

override virtual

Prepare this column for reading/writing.

Used internally by the stman.

Implements dyscostman::DyscoStManColumn.

## initializeDecode()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::initializeDecode | ( | TimeBlockBuffer< data_t > * | buffer,
|  | const float * | metaBuffer,
|  | size_t | nRow,
|  | size_t | nAntennae )

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

References dyscostman::DyscoStManColumn::nAntennae().

## initializeEncodeThread()

template<typename DataType>

virtual std::unique_ptr< ThreadDataBase > dyscostman::ThreadedDyscoColumn< DataType >::initializeEncodeThread | ( |  | ) |

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

## isWriteItemAvailable()

template<typename DataType>

bool dyscostman::ThreadedDyscoColumn< DataType >::isWriteItemAvailable | ( | typename cache_t::iterator & | i | ) |

private

## loadBlock()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::loadBlock | ( | size_t | blockIndex | ) |

private

## maxCacheSize()

template<typename DataType>

size_t dyscostman::ThreadedDyscoColumn< DataType >::maxCacheSize | ( |  | ) | const

inline private

Definition at line 188 of file threadeddyscocolumn.h.

References defaultThreadCount().

## metaDataFloatCount()

template<typename DataType>

virtual size_t dyscostman::ThreadedDyscoColumn< DataType >::metaDataFloatCount | ( | size_t | nRow,
|  | size_t | nPolarizations,
|  | size_t | nChannels,
|  | size_t | nAntennae ) const

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

References dyscostman::DyscoStManColumn::nAntennae().

## operator=()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::operator= | ( | const ThreadedDyscoColumn< DataType > & | source | ) |

delete

References ThreadedDyscoColumn().

## Prepare()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::Prepare | ( | DyscoDistribution | distribution,
|  | Normalization | normalization,
|  | double | studentsTNu,
|  | double | distributionTruncation )

override virtual

Implements dyscostman::DyscoStManColumn.

Reimplemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

## putArrayV() [1/3]

void dyscostman::ThreadedDyscoColumn< float >::putArrayV | ( | casacore::rownr_t | rowNr,
|  | const casacore::ArrayBase & | dataPtr )

inline

Definition at line 230 of file threadeddyscocolumn.h.

## putArrayV() [2/3]

void dyscostman::ThreadedDyscoColumn< std::complex< float > >::putArrayV | ( | casacore::rownr_t | rowNr,
|  | const casacore::ArrayBase & | dataPtr )

inline

Definition at line 220 of file threadeddyscocolumn.h.

## putArrayV() [3/3]

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::putArrayV | ( | casacore::rownr_t | rowNr,
|  | const casacore::ArrayBase & | dataPtr )

inline override virtual

Write values into a particular row.

This will add the values into the cache and returns immediately afterwards. A pool of threads will encode the items in the cache and write them to disk.

Parameters

  rowNr | The row number to write the values to.
  dataPtr | The data pointer, which should be a contiguous array.

Definition at line 77 of file threadeddyscocolumn.h.

References casacore::DataManagerColumn::putArrayV().

## putValues()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::putValues | ( | casacore::rownr_t | rowNr,
|  | const casacore::Array< data_t > * | dataPtr )

private

## SerializeExtraHeader()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::SerializeExtraHeader | ( | std::ostream & | stream | ) | const

final override virtual

Implements dyscostman::DyscoStManColumn.

## SetBitsPerSymbol()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::SetBitsPerSymbol | ( | unsigned | bitsPerSymbol | ) |

inline

Set the bits per symbol.

Should only be called by DyscoStMan.

Parameters

  bitsPerSymbol | New number of bits per symbol.

Definition at line 96 of file threadeddyscocolumn.h.

References _bitsPerSymbol.

## setShapeColumn()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::setShapeColumn | ( | const casacore::IPosition & | shape | ) |

override virtual

Set the dimensions of values in this column.

Reimplemented from casacore::DataManagerColumn.

References shape().

## shape() [1/2]

template<typename DataType>

const casacore::IPosition & dyscostman::ThreadedDyscoColumn< DataType >::shape | ( |  | ) | const

inline protected

Definition at line 143 of file threadeddyscocolumn.h.

References _shape.

## shape() [2/2]

template<typename DataType>

virtual casacore::IPosition dyscostman::ThreadedDyscoColumn< DataType >::shape | ( | casacore::rownr_t |  | ) |

inline override virtual

Get the dimensions of the values in a particular row.

The rownr parameter is not used as the shape is the same for all rows.

Definition at line 54 of file threadeddyscocolumn.h.

References _shape.

Referenced by setShapeColumn().

## shutdown()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::shutdown | ( |  | ) |

final override protected virtual

To be called before destructing the class.

Implements dyscostman::DyscoStManColumn.

## stopThreads()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::stopThreads | ( |  | ) |

private

## storeBlock()

template<typename DataType>

void dyscostman::ThreadedDyscoColumn< DataType >::storeBlock | ( |  | ) |

private

## symbolCount()

template<typename DataType>

virtual size_t dyscostman::ThreadedDyscoColumn< DataType >::symbolCount | ( | size_t | nRowsInBlock,
|  | size_t | nPolarizations,
|  | size_t | nChannels ) const

protected pure virtual

Implemented in dyscostman::DyscoDataColumn, and dyscostman::DyscoWeightColumn.

References dyscostman::DyscoStManColumn::nRowsInBlock().

## UnserializeExtraHeader()

template<typename DataType>

virtual void dyscostman::ThreadedDyscoColumn< DataType >::UnserializeExtraHeader | ( | std::istream & | stream | ) |

final override virtual

Implements dyscostman::DyscoStManColumn.

## Member Data Documentation

## _ant1Col

template<typename DataType>

std::unique_ptr<casacore::ScalarColumn<int> > dyscostman::ThreadedDyscoColumn< DataType >::_ant1Col

private

Definition at line 194 of file threadeddyscocolumn.h.

## _ant2Col

template<typename DataType>

std::unique_ptr<casacore::ScalarColumn<int> > dyscostman::ThreadedDyscoColumn< DataType >::_ant2Col

private

Definition at line 194 of file threadeddyscocolumn.h.

## _antennaCount

template<typename DataType>

size_t dyscostman::ThreadedDyscoColumn< DataType >::_antennaCount

private

Definition at line 209 of file threadeddyscocolumn.h.

## _bitsPerSymbol

template<typename DataType>

unsigned dyscostman::ThreadedDyscoColumn< DataType >::_bitsPerSymbol

private

Definition at line 192 of file threadeddyscocolumn.h.

Referenced by getBitsPerSymbol(), and SetBitsPerSymbol().

## _blockSize

template<typename DataType>

size_t dyscostman::ThreadedDyscoColumn< DataType >::_blockSize

private

Definition at line 208 of file threadeddyscocolumn.h.

## _cache

template<typename DataType>

cache_t dyscostman::ThreadedDyscoColumn< DataType >::_cache

private

Definition at line 201 of file threadeddyscocolumn.h.

## _cacheChangedCondition

template<typename DataType>

std::condition_variable dyscostman::ThreadedDyscoColumn< DataType >::_cacheChangedCondition

private

Definition at line 205 of file threadeddyscocolumn.h.

## _currentBlock

template<typename DataType>

size_t dyscostman::ThreadedDyscoColumn< DataType >::_currentBlock

private

Definition at line 206 of file threadeddyscocolumn.h.

## _dataDescIdCol

template<typename DataType>

std::unique_ptr<casacore::ScalarColumn<int> > dyscostman::ThreadedDyscoColumn< DataType >::_dataDescIdCol

private

Definition at line 195 of file threadeddyscocolumn.h.

## _fieldCol

template<typename DataType>

std::unique_ptr<casacore::ScalarColumn<int> > dyscostman::ThreadedDyscoColumn< DataType >::_fieldCol

private

Definition at line 194 of file threadeddyscocolumn.h.

## _isCurrentBlockChanged

template<typename DataType>

bool dyscostman::ThreadedDyscoColumn< DataType >::_isCurrentBlockChanged

private

Definition at line 207 of file threadeddyscocolumn.h.

## _lastWrittenDataDescId

template<typename DataType>

int dyscostman::ThreadedDyscoColumn< DataType >::_lastWrittenDataDescId

private

Definition at line 198 of file threadeddyscocolumn.h.

## _lastWrittenField

template<typename DataType>

int dyscostman::ThreadedDyscoColumn< DataType >::_lastWrittenField

private

Definition at line 198 of file threadeddyscocolumn.h.

## _lastWrittenTime

template<typename DataType>

double dyscostman::ThreadedDyscoColumn< DataType >::_lastWrittenTime

private

Definition at line 197 of file threadeddyscocolumn.h.

## _mutex

template<typename DataType>

std::mutex dyscostman::ThreadedDyscoColumn< DataType >::_mutex

private

Definition at line 203 of file threadeddyscocolumn.h.

## _packedBlockReadBuffer

template<typename DataType>

aocommon::UVector<unsigned char> dyscostman::ThreadedDyscoColumn< DataType >::_packedBlockReadBuffer

private

Definition at line 199 of file threadeddyscocolumn.h.

## _shape

template<typename DataType>

casacore::IPosition dyscostman::ThreadedDyscoColumn< DataType >::_shape

private

Definition at line 193 of file threadeddyscocolumn.h.

Referenced by shape(), and shape().

## _stopThreads

template<typename DataType>

bool dyscostman::ThreadedDyscoColumn< DataType >::_stopThreads

private

Definition at line 202 of file threadeddyscocolumn.h.

## _threadGroup

template<typename DataType>

threadgroup dyscostman::ThreadedDyscoColumn< DataType >::_threadGroup

private

Definition at line 204 of file threadeddyscocolumn.h.

## _timeBlockBuffer

template<typename DataType>

std::unique_ptr<TimeBlockBuffer<data_t> > dyscostman::ThreadedDyscoColumn< DataType >::_timeBlockBuffer

private

Definition at line 211 of file threadeddyscocolumn.h.

## _timeCol

template<typename DataType>

std::unique_ptr<casacore::ScalarColumn<double> > dyscostman::ThreadedDyscoColumn< DataType >::_timeCol

private

Definition at line 196 of file threadeddyscocolumn.h.

## _unpackedSymbolReadBuffer

template<typename DataType>

aocommon::UVector<unsigned int> dyscostman::ThreadedDyscoColumn< DataType >::_unpackedSymbolReadBuffer

private

Definition at line 200 of file threadeddyscocolumn.h.

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

- tables/Dysco/threadeddyscocolumn.h