casacore
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
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? Default is no.
 
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? By default it returns True.
 
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().

◆ SiscoStManColumn() [2/2]

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

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_, casacore::IPosition::size(), 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_, casacore::DataManager::fileName(), 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

◆ 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(), and casacore::IPosition::size().

◆ 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 casacore::DataManager::fileName(), 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

constexpr size_t casacore::SiscoStManColumn::kHeaderSize
staticconstexprprivate

Definition at line 318 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kMagic

constexpr char casacore::SiscoStManColumn::kMagic[]
staticconstexprprivate

Definition at line 319 of file SiscoStManColumn.h.

Referenced by OpenWriter().

◆ kMagicSize

constexpr size_t casacore::SiscoStManColumn::kMagicSize
staticconstexprprivate

Definition at line 320 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kShapesExtension

constexpr char casacore::SiscoStManColumn::kShapesExtension[]
staticconstexprprivate

Definition at line 323 of file SiscoStManColumn.h.

Referenced by ShapesFilename().

◆ kVersionMajor

constexpr uint16_t casacore::SiscoStManColumn::kVersionMajor
staticconstexprprivate

Definition at line 321 of file SiscoStManColumn.h.

Referenced by OpenReader(), and OpenWriter().

◆ kVersionMinor

constexpr 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(), and ShapesFilename().

◆ 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: