casacore
Loading...
Searching...
No Matches
casacore::SiscoStManColumn Class Referencefinal

Base class for columns of the StokesIStMan. More...

#include <SiscoStManColumn.h>

Public Member Functions

 SiscoStManColumn (SiscoStMan &parent, DataType dtype)
 Constructor, to be overloaded by subclass.
bool isWritable () const final
 Whether this column is writable.
bool canChangeShape () const final
 Can the data manager handle chaging the shape of an existing array?
void setShape (rownr_t, const IPosition &) final
 Set the shape of an (variable-shaped) array in the given row.
void setShape (unsigned, const IPosition &) final
bool isShapeDefined (rownr_t row) final
 Is the value shape defined in the given row?
bool isShapeDefined (unsigned) final
void setShapeColumn (const IPosition &shape) final
 Set the dimensions of values in this column.
IPosition shape (rownr_t row) final
 Get the dimensions of the values in a particular row.
IPosition shape (unsigned row) final
void getArrayV (rownr_t row, ArrayBase &dataPtr) final
 Read the values for a particular row.
void putArrayV (rownr_t row, const ArrayBase &dataPtr) final
 Write values into a particular row.
void Prepare ()
Public Member Functions inherited from casacore::StManColumn
 StManColumn (int dataType)
 Default constructor.
virtual ~StManColumn ()
 StManColumn (const StManColumn &)=delete
 The object cannot be copied.
StManColumnoperator= (const StManColumn &)=delete
 The object cannot be assigned to.
virtual void setShape (uInt rownr, const IPosition &shape)
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 void setShapeTiled (uInt rownr, const IPosition &shape, const IPosition &tileShape)
virtual Bool isShapeDefined (uInt rownr)
virtual uInt ndim (rownr_t rownr)
 Get the dimensionality of the item in the given row.
virtual uInt ndim (uInt rownr)
virtual IPosition shape (uInt rownr)
virtual IPosition tileShape (rownr_t rownr)
 Get the tile shape of the item in the given row.
virtual IPosition tileShape (uInt rownr)
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 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 putBool (rownr_t rownr, const Bool *dataPtr)
 Put the scalar value in 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 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 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 getArrayColumnV (ArrayBase &dataPtr)
 Get all array values in the column.
virtual void putArrayColumnV (const ArrayBase &dataPtr)
 Put all array values in the column.
virtual void getArrayColumnCellsV (const RefRows &rownrs, ArrayBase &dataPtr)
 Get some array values in the column.
virtual void putArrayColumnCellsV (const RefRows &rownrs, const ArrayBase &dataPtr)
 Put some array values in the column.
virtual void getSliceV (rownr_t rownr, const Slicer &slicer, ArrayBase &dataPtr)
 Get a section of the array in the given row.
virtual void putSliceV (rownr_t rownr, const Slicer &slicer, const ArrayBase &dataPtr)
 Put into a section of the array in the given row.
virtual void getColumnSliceV (const Slicer &slicer, ArrayBase &dataPtr)
 Get a section of all arrays in the column.
virtual void putColumnSliceV (const Slicer &slicer, const ArrayBase &dataPtr)
 Put into a section of all arrays in the column.
virtual void getColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, ArrayBase &dataPtr)
 Get a section of some arrays in the column.
virtual void putColumnSliceCellsV (const RefRows &rownrs, const Slicer &slicer, const ArrayBase &dataPtr)
 Put into a section of some arrays in the column.
Public Member Functions inherited from casacore::StManColumnBase
 StManColumnBase (int dataType)
 Default constructor.
 ~StManColumnBase ()
 StManColumnBase (const StManColumnBase &)=delete
 The object cannot be copied.
StManColumnBaseoperator= (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.
DataManagerColumnoperator= (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.
ColumnCachecolumnCache ()
 Get access to the ColumnCache object.
const ColumnCachecolumnCachePtr () 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.
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 StringcolumnName () const
 Get rhe column name.

Private Member Functions

 SiscoStManColumn (const SiscoStManColumn &source)=delete
void operator= (const SiscoStManColumn &source)=delete
void Reset ()
void OpenWriter ()
void OpenReader ()
void RequestOneMoreRow ()
size_t GetBaselineId (int field_id, int data_desc_id, int antenna1, int antenna2, int polarization)
std::string ShapesFilename () const
void WriteEmptyRow ()
void SkipRow ()

Private Attributes

ScalarColumn< int > field_id_column_
ScalarColumn< int > data_desc_id_column_
ScalarColumn< int > antenna1_column_
ScalarColumn< int > antenna2_column_
SiscoStManparent_
std::optional< sisco::SiscoWriterwriter_
std::optional< sisco::SiscoReaderreader_
std::optional< ShapesFileWritershapes_writer_
std::optional< ShapesFileReadershapes_reader_
std::vector< IPositionshape_buffer_
 A circular buffer to store the already read shapes.
size_t shape_read_position_
size_t shape_write_position_
rownr_t current_shape_reading_row_
rownr_t current_row_
std::vector< std::complex< float > > buffer_
std::map< std::array< int, 5 >, size_t > baseline_ids_
size_t baseline_count_
bool file_exists_

Static Private Attributes

static constexpr size_t kHeaderSize
static constexpr char kMagic []
static constexpr size_t kMagicSize
static constexpr uint16_t kVersionMajor
static constexpr uint16_t kVersionMinor
static constexpr char kShapesExtension []

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.
Protected Member Functions inherited from casacore::StManColumn
virtual void getBoolV (uInt rownr, Bool *dataPtr)
 Get the scalar value in the given row.
virtual void getuCharV (uInt rownr, uChar *dataPtr)
virtual void getShortV (uInt rownr, Short *dataPtr)
virtual void getuShortV (uInt rownr, uShort *dataPtr)
virtual void getIntV (uInt rownr, Int *dataPtr)
virtual void getuIntV (uInt rownr, uInt *dataPtr)
virtual void getfloatV (uInt rownr, float *dataPtr)
virtual void getdoubleV (uInt rownr, double *dataPtr)
virtual void getComplexV (uInt rownr, Complex *dataPtr)
virtual void getDComplexV (uInt rownr, DComplex *dataPtr)
virtual void getStringV (uInt rownr, String *dataPtr)
virtual void putBoolV (uInt rownr, const Bool *dataPtr)
 Put the scalar value in the given row.
virtual void putuCharV (uInt rownr, const uChar *dataPtr)
virtual void putShortV (uInt rownr, const Short *dataPtr)
virtual void putuShortV (uInt rownr, const uShort *dataPtr)
virtual void putIntV (uInt rownr, const Int *dataPtr)
virtual void putuIntV (uInt rownr, const uInt *dataPtr)
virtual void putfloatV (uInt rownr, const float *dataPtr)
virtual void putdoubleV (uInt rownr, const double *dataPtr)
virtual void putComplexV (uInt rownr, const Complex *dataPtr)
virtual void putDComplexV (uInt rownr, const DComplex *dataPtr)
virtual void putStringV (uInt rownr, const String *dataPtr)
virtual void getScalarColumnBoolV (Vector< Bool > *dataPtr)
 Get the scalar values in the entire column.
virtual void getScalarColumnuCharV (Vector< uChar > *dataPtr)
virtual void getScalarColumnShortV (Vector< Short > *dataPtr)
virtual void getScalarColumnuShortV (Vector< uShort > *dataPtr)
virtual void getScalarColumnIntV (Vector< Int > *dataPtr)
virtual void getScalarColumnuIntV (Vector< uInt > *dataPtr)
virtual void getScalarColumnInt64V (Vector< Int64 > *dataPtr)
virtual void getScalarColumnfloatV (Vector< float > *dataPtr)
virtual void getScalarColumndoubleV (Vector< double > *dataPtr)
virtual void getScalarColumnComplexV (Vector< Complex > *dataPtr)
virtual void getScalarColumnDComplexV (Vector< DComplex > *dataPtr)
virtual void getScalarColumnStringV (Vector< String > *dataPtr)
virtual void putScalarColumnBoolV (const Vector< Bool > *dataPtr)
 Put the scalar values into the entire column.
virtual void putScalarColumnuCharV (const Vector< uChar > *dataPtr)
virtual void putScalarColumnShortV (const Vector< Short > *dataPtr)
virtual void putScalarColumnuShortV (const Vector< uShort > *dataPtr)
virtual void putScalarColumnIntV (const Vector< Int > *dataPtr)
virtual void putScalarColumnuIntV (const Vector< uInt > *dataPtr)
virtual void putScalarColumnInt64V (const Vector< Int64 > *dataPtr)
virtual void putScalarColumnfloatV (const Vector< float > *dataPtr)
virtual void putScalarColumndoubleV (const Vector< double > *dataPtr)
virtual void putScalarColumnComplexV (const Vector< Complex > *dataPtr)
virtual void putScalarColumnDComplexV (const Vector< DComplex > *dataPtr)
virtual void putScalarColumnStringV (const Vector< String > *dataPtr)
virtual void getScalarColumnCellsBoolV (const RefRows &rownrs, Vector< Bool > *dataPtr)
 Get the scalar values in some cells of the column.
virtual void getScalarColumnCellsuCharV (const RefRows &rownrs, Vector< uChar > *dataPtr)
virtual void getScalarColumnCellsShortV (const RefRows &rownrs, Vector< Short > *dataPtr)
virtual void getScalarColumnCellsuShortV (const RefRows &rownrs, Vector< uShort > *dataPtr)
virtual void getScalarColumnCellsIntV (const RefRows &rownrs, Vector< Int > *dataPtr)
virtual void getScalarColumnCellsuIntV (const RefRows &rownrs, Vector< uInt > *dataPtr)
virtual void getScalarColumnCellsInt64V (const RefRows &rownrs, Vector< Int64 > *dataPtr)
virtual void getScalarColumnCellsfloatV (const RefRows &rownrs, Vector< float > *dataPtr)
virtual void getScalarColumnCellsdoubleV (const RefRows &rownrs, Vector< double > *dataPtr)
virtual void getScalarColumnCellsComplexV (const RefRows &rownrs, Vector< Complex > *dataPtr)
virtual void getScalarColumnCellsDComplexV (const RefRows &rownrs, Vector< DComplex > *dataPtr)
virtual void getScalarColumnCellsStringV (const RefRows &rownrs, Vector< String > *dataPtr)
virtual void putScalarColumnCellsBoolV (const RefRows &rownrs, const Vector< Bool > *dataPtr)
 Put the scalar values into some cells of the column.
virtual void putScalarColumnCellsuCharV (const RefRows &rownrs, const Vector< uChar > *dataPtr)
virtual void putScalarColumnCellsShortV (const RefRows &rownrs, const Vector< Short > *dataPtr)
virtual void putScalarColumnCellsuShortV (const RefRows &rownrs, const Vector< uShort > *dataPtr)
virtual void putScalarColumnCellsIntV (const RefRows &rownrs, const Vector< Int > *dataPtr)
virtual void putScalarColumnCellsuIntV (const RefRows &rownrs, const Vector< uInt > *dataPtr)
virtual void putScalarColumnCellsInt64V (const RefRows &rownrs, const Vector< Int64 > *dataPtr)
virtual void putScalarColumnCellsfloatV (const RefRows &rownrs, const Vector< float > *dataPtr)
virtual void putScalarColumnCellsdoubleV (const RefRows &rownrs, const Vector< double > *dataPtr)
virtual void putScalarColumnCellsComplexV (const RefRows &rownrs, const Vector< Complex > *dataPtr)
virtual void putScalarColumnCellsDComplexV (const RefRows &rownrs, const Vector< DComplex > *dataPtr)
virtual void putScalarColumnCellsStringV (const RefRows &rownrs, const Vector< String > *dataPtr)
virtual void getArrayBoolV (uInt rownr, Array< Bool > *dataPtr)
 Get the array value in the given row.
virtual void getArrayuCharV (uInt rownr, Array< uChar > *dataPtr)
virtual void getArrayShortV (uInt rownr, Array< Short > *dataPtr)
virtual void getArrayuShortV (uInt rownr, Array< uShort > *dataPtr)
virtual void getArrayIntV (uInt rownr, Array< Int > *dataPtr)
virtual void getArrayuIntV (uInt rownr, Array< uInt > *dataPtr)
virtual void getArrayInt64V (uInt rownr, Array< Int64 > *dataPtr)
virtual void getArrayfloatV (uInt rownr, Array< float > *dataPtr)
virtual void getArraydoubleV (uInt rownr, Array< double > *dataPtr)
virtual void getArrayComplexV (uInt rownr, Array< Complex > *dataPtr)
virtual void getArrayDComplexV (uInt rownr, Array< DComplex > *dataPtr)
virtual void getArrayStringV (uInt rownr, Array< String > *dataPtr)
virtual void putArrayBoolV (uInt rownr, const Array< Bool > *dataPtr)
 Put the array value into the given row.
virtual void putArrayuCharV (uInt rownr, const Array< uChar > *dataPtr)
virtual void putArrayShortV (uInt rownr, const Array< Short > *dataPtr)
virtual void putArrayuShortV (uInt rownr, const Array< uShort > *dataPtr)
virtual void putArrayIntV (uInt rownr, const Array< Int > *dataPtr)
virtual void putArrayuIntV (uInt rownr, const Array< uInt > *dataPtr)
virtual void putArrayInt64V (uInt rownr, const Array< Int64 > *dataPtr)
virtual void putArrayfloatV (uInt rownr, const Array< float > *dataPtr)
virtual void putArraydoubleV (uInt rownr, const Array< double > *dataPtr)
virtual void putArrayComplexV (uInt rownr, const Array< Complex > *dataPtr)
virtual void putArrayDComplexV (uInt rownr, const Array< DComplex > *dataPtr)
virtual void putArrayStringV (uInt rownr, const Array< String > *dataPtr)
virtual void getArrayColumnBoolV (Array< Bool > *dataPtr)
 Get the array values in the entire column.
virtual void getArrayColumnuCharV (Array< uChar > *dataPtr)
virtual void getArrayColumnShortV (Array< Short > *dataPtr)
virtual void getArrayColumnuShortV (Array< uShort > *dataPtr)
virtual void getArrayColumnIntV (Array< Int > *dataPtr)
virtual void getArrayColumnuIntV (Array< uInt > *dataPtr)
virtual void getArrayColumnInt64V (Array< Int64 > *dataPtr)
virtual void getArrayColumnfloatV (Array< float > *dataPtr)
virtual void getArrayColumndoubleV (Array< double > *dataPtr)
virtual void getArrayColumnComplexV (Array< Complex > *dataPtr)
virtual void getArrayColumnDComplexV (Array< DComplex > *dataPtr)
virtual void getArrayColumnStringV (Array< String > *dataPtr)
virtual void putArrayColumnBoolV (const Array< Bool > *dataPtr)
 Put the array values into the entire column.
virtual void putArrayColumnuCharV (const Array< uChar > *dataPtr)
virtual void putArrayColumnShortV (const Array< Short > *dataPtr)
virtual void putArrayColumnuShortV (const Array< uShort > *dataPtr)
virtual void putArrayColumnIntV (const Array< Int > *dataPtr)
virtual void putArrayColumnuIntV (const Array< uInt > *dataPtr)
virtual void putArrayColumnInt64V (const Array< Int64 > *dataPtr)
virtual void putArrayColumnfloatV (const Array< float > *dataPtr)
virtual void putArrayColumndoubleV (const Array< double > *dataPtr)
virtual void putArrayColumnComplexV (const Array< Complex > *dataPtr)
virtual void putArrayColumnDComplexV (const Array< DComplex > *dataPtr)
virtual void putArrayColumnStringV (const Array< String > *dataPtr)
virtual void getArrayColumnCellsBoolV (const RefRows &rownrs, Array< Bool > *dataPtr)
 Get the array values in some cells of the column.
virtual void getArrayColumnCellsuCharV (const RefRows &rownrs, Array< uChar > *dataPtr)
virtual void getArrayColumnCellsShortV (const RefRows &rownrs, Array< Short > *dataPtr)
virtual void getArrayColumnCellsuShortV (const RefRows &rownrs, Array< uShort > *dataPtr)
virtual void getArrayColumnCellsIntV (const RefRows &rownrs, Array< Int > *dataPtr)
virtual void getArrayColumnCellsuIntV (const RefRows &rownrs, Array< uInt > *dataPtr)
virtual void getArrayColumnCellsInt64V (const RefRows &rownrs, Array< Int64 > *dataPtr)
virtual void getArrayColumnCellsfloatV (const RefRows &rownrs, Array< float > *dataPtr)
virtual void getArrayColumnCellsdoubleV (const RefRows &rownrs, Array< double > *dataPtr)
virtual void getArrayColumnCellsComplexV (const RefRows &rownrs, Array< Complex > *dataPtr)
virtual void getArrayColumnCellsDComplexV (const RefRows &rownrs, Array< DComplex > *dataPtr)
virtual void getArrayColumnCellsStringV (const RefRows &rownrs, Array< String > *dataPtr)
virtual void putArrayColumnCellsBoolV (const RefRows &rownrs, const Array< Bool > *dataPtr)
 Put the array values into some cells of the column.
virtual void putArrayColumnCellsuCharV (const RefRows &rownrs, const Array< uChar > *dataPtr)
virtual void putArrayColumnCellsShortV (const RefRows &rownrs, const Array< Short > *dataPtr)
virtual void putArrayColumnCellsuShortV (const RefRows &rownrs, const Array< uShort > *dataPtr)
virtual void putArrayColumnCellsIntV (const RefRows &rownrs, const Array< Int > *dataPtr)
virtual void putArrayColumnCellsuIntV (const RefRows &rownrs, const Array< uInt > *dataPtr)
virtual void putArrayColumnCellsInt64V (const RefRows &rownrs, const Array< Int64 > *dataPtr)
virtual void putArrayColumnCellsfloatV (const RefRows &rownrs, const Array< float > *dataPtr)
virtual void putArrayColumnCellsdoubleV (const RefRows &rownrs, const Array< double > *dataPtr)
virtual void putArrayColumnCellsComplexV (const RefRows &rownrs, const Array< Complex > *dataPtr)
virtual void putArrayColumnCellsDComplexV (const RefRows &rownrs, const Array< DComplex > *dataPtr)
virtual void putArrayColumnCellsStringV (const RefRows &rownrs, const Array< String > *dataPtr)
virtual void getSliceBoolV (uInt rownr, const Slicer &ns, Array< Bool > *dataPtr)
 Get the array value in the given row.
virtual void getSliceuCharV (uInt rownr, const Slicer &ns, Array< uChar > *dataPtr)
virtual void getSliceShortV (uInt rownr, const Slicer &ns, Array< Short > *dataPtr)
virtual void getSliceuShortV (uInt rownr, const Slicer &ns, Array< uShort > *dataPtr)
virtual void getSliceIntV (uInt rownr, const Slicer &ns, Array< Int > *dataPtr)
virtual void getSliceuIntV (uInt rownr, const Slicer &ns, Array< uInt > *dataPtr)
virtual void getSliceInt64V (uInt rownr, const Slicer &ns, Array< Int64 > *dataPtr)
virtual void getSlicefloatV (uInt rownr, const Slicer &ns, Array< float > *dataPtr)
virtual void getSlicedoubleV (uInt rownr, const Slicer &ns, Array< double > *dataPtr)
virtual void getSliceComplexV (uInt rownr, const Slicer &ns, Array< Complex > *dataPtr)
virtual void getSliceDComplexV (uInt rownr, const Slicer &ns, Array< DComplex > *dataPtr)
virtual void getSliceStringV (uInt rownr, const Slicer &ns, Array< String > *dataPtr)
virtual void putSliceBoolV (uInt rownr, const Slicer &ns, const Array< Bool > *dataPtr)
 Put the array value into the given row.
virtual void putSliceuCharV (uInt rownr, const Slicer &ns, const Array< uChar > *dataPtr)
virtual void putSliceShortV (uInt rownr, const Slicer &ns, const Array< Short > *dataPtr)
virtual void putSliceuShortV (uInt rownr, const Slicer &ns, const Array< uShort > *dataPtr)
virtual void putSliceIntV (uInt rownr, const Slicer &ns, const Array< Int > *dataPtr)
virtual void putSliceuIntV (uInt rownr, const Slicer &ns, const Array< uInt > *dataPtr)
virtual void putSliceInt64V (uInt rownr, const Slicer &ns, const Array< Int64 > *dataPtr)
virtual void putSlicefloatV (uInt rownr, const Slicer &ns, const Array< float > *dataPtr)
virtual void putSlicedoubleV (uInt rownr, const Slicer &ns, const Array< double > *dataPtr)
virtual void putSliceComplexV (uInt rownr, const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putSliceDComplexV (uInt rownr, const Slicer &ns, const Array< DComplex > *dataPtr)
virtual void putSliceStringV (uInt rownr, const Slicer &ns, const Array< String > *dataPtr)
virtual void getColumnSliceBoolV (const Slicer &ns, Array< Bool > *dataPtr)
 Get the array values in the entire column.
virtual void getColumnSliceuCharV (const Slicer &ns, Array< uChar > *dataPtr)
virtual void getColumnSliceShortV (const Slicer &ns, Array< Short > *dataPtr)
virtual void getColumnSliceuShortV (const Slicer &ns, Array< uShort > *dataPtr)
virtual void getColumnSliceIntV (const Slicer &ns, Array< Int > *dataPtr)
virtual void getColumnSliceuIntV (const Slicer &ns, Array< uInt > *dataPtr)
virtual void getColumnSliceInt64V (const Slicer &ns, Array< Int64 > *dataPtr)
virtual void getColumnSlicefloatV (const Slicer &ns, Array< float > *dataPtr)
virtual void getColumnSlicedoubleV (const Slicer &ns, Array< double > *dataPtr)
virtual void getColumnSliceComplexV (const Slicer &ns, Array< Complex > *dataPtr)
virtual void getColumnSliceDComplexV (const Slicer &ns, Array< DComplex > *dataPtr)
virtual void getColumnSliceStringV (const Slicer &ns, Array< String > *dataPtr)
virtual void putColumnSliceBoolV (const Slicer &ns, const Array< Bool > *dataPtr)
 Put the array values into the entire column.
virtual void putColumnSliceuCharV (const Slicer &ns, const Array< uChar > *dataPtr)
virtual void putColumnSliceShortV (const Slicer &ns, const Array< Short > *dataPtr)
virtual void putColumnSliceuShortV (const Slicer &ns, const Array< uShort > *dataPtr)
virtual void putColumnSliceIntV (const Slicer &ns, const Array< Int > *dataPtr)
virtual void putColumnSliceuIntV (const Slicer &ns, const Array< uInt > *dataPtr)
virtual void putColumnSliceInt64V (const Slicer &ns, const Array< Int64 > *dataPtr)
virtual void putColumnSlicefloatV (const Slicer &ns, const Array< float > *dataPtr)
virtual void putColumnSlicedoubleV (const Slicer &ns, const Array< double > *dataPtr)
virtual void putColumnSliceComplexV (const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putColumnSliceDComplexV (const Slicer &ns, const Array< DComplex > *dataPtr)
virtual void putColumnSliceStringV (const Slicer &ns, const Array< String > *dataPtr)
virtual void getColumnSliceCellsBoolV (const RefRows &rownrs, const Slicer &ns, Array< Bool > *dataPtr)
 Get the array values in some cells of the column.
virtual void getColumnSliceCellsuCharV (const RefRows &rownrs, const Slicer &ns, Array< uChar > *dataPtr)
virtual void getColumnSliceCellsShortV (const RefRows &rownrs, const Slicer &ns, Array< Short > *dataPtr)
virtual void getColumnSliceCellsuShortV (const RefRows &rownrs, const Slicer &ns, Array< uShort > *dataPtr)
virtual void getColumnSliceCellsIntV (const RefRows &rownrs, const Slicer &ns, Array< Int > *dataPtr)
virtual void getColumnSliceCellsuIntV (const RefRows &rownrs, const Slicer &ns, Array< uInt > *dataPtr)
virtual void getColumnSliceCellsInt64V (const RefRows &rownrs, const Slicer &ns, Array< Int64 > *dataPtr)
virtual void getColumnSliceCellsfloatV (const RefRows &rownrs, const Slicer &ns, Array< float > *dataPtr)
virtual void getColumnSliceCellsdoubleV (const RefRows &rownrs, const Slicer &ns, Array< double > *dataPtr)
virtual void getColumnSliceCellsComplexV (const RefRows &rownrs, const Slicer &ns, Array< Complex > *dataPtr)
virtual void getColumnSliceCellsDComplexV (const RefRows &rownrs, const Slicer &ns, Array< DComplex > *dataPtr)
virtual void getColumnSliceCellsStringV (const RefRows &rownrs, const Slicer &ns, Array< String > *dataPtr)
virtual void putColumnSliceCellsBoolV (const RefRows &rownrs, const Slicer &ns, const Array< Bool > *dataPtr)
 Put the array values into some cells of the column.
virtual void putColumnSliceCellsuCharV (const RefRows &rownrs, const Slicer &ns, const Array< uChar > *dataPtr)
virtual void putColumnSliceCellsShortV (const RefRows &rownrs, const Slicer &ns, const Array< Short > *dataPtr)
virtual void putColumnSliceCellsuShortV (const RefRows &rownrs, const Slicer &ns, const Array< uShort > *dataPtr)
virtual void putColumnSliceCellsIntV (const RefRows &rownrs, const Slicer &ns, const Array< Int > *dataPtr)
virtual void putColumnSliceCellsuIntV (const RefRows &rownrs, const Slicer &ns, const Array< uInt > *dataPtr)
virtual void putColumnSliceCellsInt64V (const RefRows &rownrs, const Slicer &ns, const Array< Int64 > *dataPtr)
virtual void putColumnSliceCellsfloatV (const RefRows &rownrs, const Slicer &ns, const Array< float > *dataPtr)
virtual void putColumnSliceCellsdoubleV (const RefRows &rownrs, const Slicer &ns, const Array< double > *dataPtr)
virtual void putColumnSliceCellsComplexV (const RefRows &rownrs, const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putColumnSliceCellsDComplexV (const RefRows &rownrs, const Slicer &ns, const Array< DComplex > *dataPtr)
virtual void putColumnSliceCellsStringV (const RefRows &rownrs, const Slicer &ns, const Array< String > *dataPtr)
Protected Member Functions inherited from casacore::DataManagerColumn
virtual void getInt64 (rownr_t rownr, Int64 *dataPtr)
virtual void getOther (rownr_t rownr, void *dataPtr)
 This function is the get for all non-standard data types.
virtual void putInt64 (rownr_t rownr, const Int64 *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)

Detailed Description

Base class for columns of the StokesIStMan.

Author
André Offringa

Definition at line 27 of file SiscoStManColumn.h.

Constructor & Destructor Documentation

◆ SiscoStManColumn() [1/2]

casacore::SiscoStManColumn::SiscoStManColumn ( SiscoStMan & parent,
DataType dtype )
inlineexplicit

Constructor, to be overloaded by subclass.

Parameters
parentThe parent stman to which this column belongs.
dtypeThe column's type as defined by Casacore.

Definition at line 34 of file SiscoStManColumn.h.

References casacore::StManColumnBase::dtype(), parent_, and casacore::StManColumn::StManColumn().

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

◆ SiscoStManColumn() [2/2]

casacore::SiscoStManColumn::SiscoStManColumn ( const SiscoStManColumn & source)
privatedelete

References SiscoStManColumn().

Member Function Documentation

◆ canChangeShape()

bool casacore::SiscoStManColumn::canChangeShape ( ) const
inlinefinalvirtual

Can the data manager handle chaging the shape of an existing array?

Default is no.

Reimplemented from casacore::DataManagerColumn.

Definition at line 49 of file SiscoStManColumn.h.

◆ getArrayV()

void casacore::SiscoStManColumn::getArrayV ( rownr_t row,
ArrayBase & dataPtr )
inlinefinalvirtual

Read the values for a particular row.

Parameters
rowThe row number to get the values for.
dataPtrThe array of values.

Reimplemented from casacore::StManColumn.

Definition at line 102 of file SiscoStManColumn.h.

References casacore::array, buffer_, current_row_, OpenReader(), reader_, RequestOneMoreRow(), shape(), shape_buffer_, shape_read_position_, and SkipRow().

◆ GetBaselineId()

size_t casacore::SiscoStManColumn::GetBaselineId ( int field_id,
int data_desc_id,
int antenna1,
int antenna2,
int polarization )
inlineprivate

Definition at line 278 of file SiscoStManColumn.h.

References baseline_count_, and baseline_ids_.

Referenced by putArrayV(), and RequestOneMoreRow().

◆ isShapeDefined() [1/2]

bool casacore::SiscoStManColumn::isShapeDefined ( rownr_t rownr)
inlinefinalvirtual

Is the value shape defined in the given row?

By default it returns True.

Reimplemented from casacore::StManColumn.

Definition at line 57 of file SiscoStManColumn.h.

References current_row_, file_exists_, and writer_.

◆ isShapeDefined() [2/2]

bool casacore::SiscoStManColumn::isShapeDefined ( unsigned )
inlinefinal

Definition at line 64 of file SiscoStManColumn.h.

◆ isWritable()

bool casacore::SiscoStManColumn::isWritable ( ) const
inlinefinalvirtual

Whether this column is writable.

Returns
true

Reimplemented from casacore::DataManagerColumn.

Definition at line 47 of file SiscoStManColumn.h.

◆ OpenReader()

void casacore::SiscoStManColumn::OpenReader ( )
inlineprivate

Always request half of the requests that fit in the buffer of SiscoReader, so that SiscoReader can preprocess requests using multiple threads. Every time a row is read/skipped, another row is requested.

Definition at line 218 of file SiscoStManColumn.h.

References baseline_count_, baseline_ids_, current_row_, current_shape_reading_row_, kHeaderSize, kMagicSize, kVersionMajor, parent_, reader_, RequestOneMoreRow(), Reset(), shape_buffer_, shape_read_position_, shape_write_position_, shapes_reader_, and ShapesFilename().

Referenced by getArrayV(), and shape().

◆ OpenWriter()

void casacore::SiscoStManColumn::OpenWriter ( )
inlineprivate

◆ operator=()

void casacore::SiscoStManColumn::operator= ( const SiscoStManColumn & source)
privatedelete

References SiscoStManColumn().

◆ Prepare()

void casacore::SiscoStManColumn::Prepare ( )

◆ putArrayV()

void casacore::SiscoStManColumn::putArrayV ( rownr_t row,
const ArrayBase & dataPtr )
inlinefinalvirtual

Write values into a particular row.

Parameters
rowThe row number to write the values to.
dataPtrThe data pointer.

Reimplemented from casacore::StManColumn.

Definition at line 143 of file SiscoStManColumn.h.

References antenna1_column_, antenna2_column_, casacore::array, buffer_, current_row_, data_desc_id_column_, field_id_column_, GetBaselineId(), OpenWriter(), shapes_writer_, WriteEmptyRow(), and writer_.

◆ RequestOneMoreRow()

void casacore::SiscoStManColumn::RequestOneMoreRow ( )
inlineprivate

◆ Reset()

void casacore::SiscoStManColumn::Reset ( )
inlineprivate

Definition at line 189 of file SiscoStManColumn.h.

References reader_, shapes_reader_, shapes_writer_, and writer_.

Referenced by OpenReader(), and OpenWriter().

◆ setShape() [1/2]

void casacore::SiscoStManColumn::setShape ( rownr_t rownr,
const IPosition & shape )
inlinefinalvirtual

Set the shape of an (variable-shaped) array in the given row.

By default it throws a "not possible" exception.

Shape is implied from the array; explicit setting of the shape is not required.

Reimplemented from casacore::StManColumn.

Definition at line 51 of file SiscoStManColumn.h.

◆ setShape() [2/2]

void casacore::SiscoStManColumn::setShape ( unsigned ,
const IPosition &  )
inlinefinal

Definition at line 55 of file SiscoStManColumn.h.

◆ setShapeColumn()

void casacore::SiscoStManColumn::setShapeColumn ( const IPosition & shape)
inlinefinalvirtual

Set the dimensions of values in this column.

This call is ignored; shape will always be determined from array size.

Reimplemented from casacore::DataManagerColumn.

Definition at line 67 of file SiscoStManColumn.h.

References shape().

◆ shape() [1/2]

IPosition casacore::SiscoStManColumn::shape ( rownr_t row)
inlinefinalvirtual

Get the dimensions of the values in a particular row.

Parameters
rownrThe row to get the shape for.

Reimplemented from casacore::StManColumn.

Definition at line 80 of file SiscoStManColumn.h.

References current_row_, file_exists_, OpenReader(), reader_, shape_buffer_, shape_read_position_, SkipRow(), and writer_.

Referenced by getArrayV(), RequestOneMoreRow(), setShapeColumn(), shape(), and SkipRow().

◆ shape() [2/2]

IPosition casacore::SiscoStManColumn::shape ( unsigned row)
inlinefinal

Definition at line 93 of file SiscoStManColumn.h.

References shape().

◆ ShapesFilename()

std::string casacore::SiscoStManColumn::ShapesFilename ( ) const
inlineprivate

Definition at line 291 of file SiscoStManColumn.h.

References kShapesExtension, and parent_.

Referenced by OpenReader(), OpenWriter(), and Prepare().

◆ SkipRow()

void casacore::SiscoStManColumn::SkipRow ( )
inlineprivate

◆ WriteEmptyRow()

void casacore::SiscoStManColumn::WriteEmptyRow ( )
inlineprivate

Definition at line 295 of file SiscoStManColumn.h.

References current_row_, and shapes_writer_.

Referenced by putArrayV().

Member Data Documentation

◆ antenna1_column_

ScalarColumn<int> casacore::SiscoStManColumn::antenna1_column_
private

Definition at line 327 of file SiscoStManColumn.h.

Referenced by Prepare(), putArrayV(), and RequestOneMoreRow().

◆ antenna2_column_

ScalarColumn<int> casacore::SiscoStManColumn::antenna2_column_
private

Definition at line 328 of file SiscoStManColumn.h.

Referenced by Prepare(), putArrayV(), and RequestOneMoreRow().

◆ baseline_count_

size_t casacore::SiscoStManColumn::baseline_count_
private

Definition at line 343 of file SiscoStManColumn.h.

Referenced by GetBaselineId(), OpenReader(), and OpenWriter().

◆ baseline_ids_

std::map<std::array<int, 5>, size_t> casacore::SiscoStManColumn::baseline_ids_
private

Definition at line 342 of file SiscoStManColumn.h.

Referenced by GetBaselineId(), OpenReader(), and OpenWriter().

◆ buffer_

std::vector<std::complex<float> > casacore::SiscoStManColumn::buffer_
private

Definition at line 341 of file SiscoStManColumn.h.

Referenced by getArrayV(), putArrayV(), and SkipRow().

◆ current_row_

rownr_t casacore::SiscoStManColumn::current_row_
private

◆ current_shape_reading_row_

rownr_t casacore::SiscoStManColumn::current_shape_reading_row_
private

Definition at line 339 of file SiscoStManColumn.h.

Referenced by OpenReader(), and RequestOneMoreRow().

◆ data_desc_id_column_

ScalarColumn<int> casacore::SiscoStManColumn::data_desc_id_column_
private

Definition at line 326 of file SiscoStManColumn.h.

Referenced by Prepare(), putArrayV(), and RequestOneMoreRow().

◆ field_id_column_

ScalarColumn<int> casacore::SiscoStManColumn::field_id_column_
private

Definition at line 325 of file SiscoStManColumn.h.

Referenced by Prepare(), putArrayV(), and RequestOneMoreRow().

◆ file_exists_

bool casacore::SiscoStManColumn::file_exists_
private

Definition at line 344 of file SiscoStManColumn.h.

Referenced by isShapeDefined(), Prepare(), and shape().

◆ kHeaderSize

size_t casacore::SiscoStManColumn::kHeaderSize
staticconstexprprivate

Definition at line 318 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kMagic

char casacore::SiscoStManColumn::kMagic[]
staticconstexprprivate

Definition at line 319 of file SiscoStManColumn.h.

Referenced by OpenWriter().

◆ kMagicSize

size_t casacore::SiscoStManColumn::kMagicSize
staticconstexprprivate

Definition at line 320 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kShapesExtension

char casacore::SiscoStManColumn::kShapesExtension[]
staticconstexprprivate

Definition at line 323 of file SiscoStManColumn.h.

Referenced by ShapesFilename().

◆ kVersionMajor

uint16_t casacore::SiscoStManColumn::kVersionMajor
staticconstexprprivate

Definition at line 321 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kVersionMinor

uint16_t casacore::SiscoStManColumn::kVersionMinor
staticconstexprprivate

Definition at line 322 of file SiscoStManColumn.h.

Referenced by OpenWriter().

◆ parent_

SiscoStMan& casacore::SiscoStManColumn::parent_
private

Definition at line 330 of file SiscoStManColumn.h.

Referenced by OpenReader(), OpenWriter(), Prepare(), ShapesFilename(), and SiscoStManColumn().

◆ reader_

std::optional<sisco::SiscoReader> casacore::SiscoStManColumn::reader_
private

Definition at line 332 of file SiscoStManColumn.h.

Referenced by getArrayV(), OpenReader(), RequestOneMoreRow(), Reset(), shape(), and SkipRow().

◆ shape_buffer_

std::vector<IPosition> casacore::SiscoStManColumn::shape_buffer_
private

A circular buffer to store the already read shapes.

Definition at line 336 of file SiscoStManColumn.h.

Referenced by getArrayV(), OpenReader(), RequestOneMoreRow(), shape(), and SkipRow().

◆ shape_read_position_

size_t casacore::SiscoStManColumn::shape_read_position_
private

Definition at line 337 of file SiscoStManColumn.h.

Referenced by getArrayV(), OpenReader(), shape(), and SkipRow().

◆ shape_write_position_

size_t casacore::SiscoStManColumn::shape_write_position_
private

Definition at line 338 of file SiscoStManColumn.h.

Referenced by OpenReader(), and RequestOneMoreRow().

◆ shapes_reader_

std::optional<ShapesFileReader> casacore::SiscoStManColumn::shapes_reader_
private

Definition at line 334 of file SiscoStManColumn.h.

Referenced by OpenReader(), RequestOneMoreRow(), and Reset().

◆ shapes_writer_

std::optional<ShapesFileWriter> casacore::SiscoStManColumn::shapes_writer_
private

Definition at line 333 of file SiscoStManColumn.h.

Referenced by OpenWriter(), putArrayV(), Reset(), and WriteEmptyRow().

◆ writer_

std::optional<sisco::SiscoWriter> casacore::SiscoStManColumn::writer_
private

Definition at line 331 of file SiscoStManColumn.h.

Referenced by isShapeDefined(), OpenWriter(), putArrayV(), Reset(), and shape().


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