Go to the documentation of this file.
28 #ifndef ADIOS2STMANCOLUMN_H
29 #define ADIOS2STMANCOLUMN_H
31 #include <unordered_map>
32 #include <casacore/casa/Arrays/Array.h>
33 #include <casacore/tables/DataMan/StManColumn.h>
34 #include <casacore/tables/Tables/RefRows.h>
50 virtual void create(std::shared_ptr<adios2::Engine> aAdiosEngine,
175 std::shared_ptr<adios2::IO> aAdiosIO)
180 void create(std::shared_ptr<adios2::Engine> aAdiosEngine,
char aOpenMode)
209 toAdios(
reinterpret_cast<const T *
>(dataPtr));
238 const T *data = arrayPtr->getStorage(deleteIt);
250 arrayPtr->freeStorage(data, deleteIt);
261 T *data = arrayPtr->getStorage(deleteIt);
273 arrayPtr->putStorage(data, deleteIt);
309 const Slicer& slicer,
void* dataPtr)
316 const Slicer& slicer,
const void* dataPtr)
328 return reinterpret_cast<Array<T>*
>(dataPtr);
333 return reinterpret_cast<const Array<T>*
>(dataPtr);
352 const T *data = arrayPtr->getStorage(deleteIt);
354 arrayPtr->freeStorage (data, deleteIt);
361 T *data = arrayPtr->getStorage(deleteIt);
363 arrayPtr->putStorage(data, deleteIt);
370 #endif // ADIOS2STMANCOLUMN_H
const Vector< uInt > & rowVector() const
Get the row vector as is (thus sliced if the object contains slices).
virtual void getBoolV(uInt aRowNr, Bool *aDataPtr)
Get the scalar value in the given row.
virtual void getScalarColumnCellsdoubleV(const RefRows &rownrs, Vector< double > *dataPtr)
virtual void getColumnSliceV(const Slicer &ns, void *dataPtr)
Get a section of all arrays in the column.
virtual void getSlicefloatV(uInt rownr, const Slicer &ns, Array< float > *dataPtr)
virtual void getScalarColumnCellsuShortV(const RefRows &rownrs, Vector< uShort > *dataPtr)
virtual void putBoolV(uInt aRowNr, const Bool *aDataPtr)
Put the scalar value into the given row.
Bool isSliced() const
Represents the vector a slice?
adios2::Dims itsAdiosStart
virtual void putSliceuIntV(uInt rownr, const Slicer &ns, const Array< uInt > *dataPtr)
void setShape(uInt aRowNr, const IPosition &aShape)
Set the shape of an (variable-shaped) array in the given row.
virtual void getScalarColumnCellsV(const RefRows &rownrs, void *dataPtr)=0
Get some scalar values in the column.
const Array< T > * asArrayPtr(const void *dataPtr) const
Adios2StManColumn(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr< adios2::IO > aAdiosIO)
virtual void getSliceShortV(uInt rownr, const Slicer &ns, Array< Short > *dataPtr)
virtual void getSliceuShortV(uInt rownr, const Slicer &ns, Array< uShort > *dataPtr)
void columnSliceCellsVToSelection(const RefRows &rows, const Slicer &ns)
virtual void getSliceDComplexV(uInt rownr, const Slicer &ns, Array< DComplex > *dataPtr)
std::complex< Double > DComplex
Bool canChangeShape() const
Can the data manager handle chaging the shape of an existing array? Default is no.
virtual void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)=0
virtual void putfloatV(uInt aRowNr, const Float *aDataPtr)
virtual void putScalarColumnCellsComplexV(const RefRows &rownrs, const Vector< Complex > *dataPtr)
virtual void getScalarColumnCellsuCharV(const RefRows &rownrs, Vector< uChar > *dataPtr)
virtual void putScalarV(uInt aRowNr, const void *aDataPtr)=0
void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)
Array< T > * asArrayPtr(void *dataPtr) const
void sliceVToSelection(uInt rownr, const Slicer &ns)
virtual void putScalarColumnCellsBoolV(const RefRows &rownrs, const Vector< Bool > *dataPtr)
Put the scalar values into some cells of the column.
virtual void putScalarColumnCellsInt64V(const RefRows &rownrs, const Vector< Int64 > *dataPtr)
virtual void putStringV(uInt aRowNr, const String *aDataPtr)
virtual void setShapeColumn(const IPosition &aShape)
Set the shape of all (fixed-shaped) arrays in the column.
virtual void putSliceShortV(uInt rownr, const Slicer &ns, const Array< Short > *dataPtr)
virtual void getScalarColumnCellsInt64V(const RefRows &rownrs, Vector< Int64 > *dataPtr)
adios2::Dims itsAdiosCount
virtual void getSliceComplexV(uInt rownr, const Slicer &ns, Array< Complex > *dataPtr)
virtual void getSliceV(uInt aRowNr, const Slicer &ns, void *dataPtr)
Get a section of the array in the given row.
virtual void getColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, void *dataPtr)
Get a section of some arrays in the column.
virtual void putScalarV(uInt rownr, const void *dataPtr)
void columnSliceCellsVToSelection(uInt row_start, uInt row_end, const Slicer &ns)
virtual void putInt64V(uInt aRowNr, const Int64 *aDataPtr)
virtual void getArrayColumnV(void *dataPtr)
Get all array values in the column.
virtual void getInt64V(uInt aRowNr, Int64 *aDataPtr)
const String itsStringArrayBarrier
virtual void getIntV(uInt aRowNr, Int *aDataPtr)
virtual void putSliceIntV(uInt rownr, const Slicer &ns, const Array< Int > *dataPtr)
virtual void putSliceuShortV(uInt rownr, const Slicer &ns, const Array< uShort > *dataPtr)
virtual void getuIntV(uInt aRowNr, uInt *aDataPtr)
Vector< uInt > convert(const Vector< uInt > &rootRownrs) const
Convert this object to a Vector<uInt> by applying the given row numbers.
virtual void getDComplexV(uInt aRowNr, DComplex *aDataPtr)
std::shared_ptr< adios2::IO > itsAdiosIO
void arrayVToSelection(uInt rownr)
virtual void putColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, const void *dataPtr)
Put into a section of some arrays in the column.
virtual void getScalarColumnCellsfloatV(const RefRows &rownrs, Vector< float > *dataPtr)
virtual void getScalarColumnCellsBoolV(const RefRows &rownrs, Vector< Bool > *dataPtr)
Get the scalar values in some cells of the column.
virtual void putSliceDComplexV(uInt rownr, const Slicer &ns, const Array< DComplex > *dataPtr)
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
virtual void getdoubleV(uInt aRowNr, Double *aDataPtr)
virtual void getScalarColumnCellsShortV(const RefRows &rownrs, Vector< Short > *dataPtr)
virtual void getScalarColumnCellsDComplexV(const RefRows &rownrs, Vector< DComplex > *dataPtr)
std::unordered_map< uInt, IPosition > itsCasaShapes
virtual void putSliceV(uInt aRowNr, const Slicer &ns, const void *dataPtr)
Put into a section of the array in the given row.
virtual void getSliceuCharV(uInt rownr, const Slicer &ns, Array< uChar > *dataPtr)
virtual void putScalarColumnCellsV(const RefRows &rownrs, const void *dataPtr)
Put some scalar values in the column.
virtual void putScalarColumnCellsuCharV(const RefRows &rownrs, const Vector< uChar > *dataPtr)
void scalarColumnCellsVToSelection(const RefRows &rownrs)
virtual void getScalarColumnCellsuIntV(const RefRows &rownrs, Vector< uInt > *dataPtr)
virtual IPosition shape(uInt aRowNr)
Get the shape of the item in the given row.
virtual void getShortV(uInt aRowNr, Short *aDataPtr)
virtual void getSlicedoubleV(uInt rownr, const Slicer &ns, Array< double > *dataPtr)
virtual void putScalarColumnCellsDComplexV(const RefRows &rownrs, const Vector< DComplex > *dataPtr)
virtual void getScalarV(uInt aRowNr, void *data)
this file contains all the compiler specific defines
virtual void getComplexV(uInt aRowNr, Complex *aDataPtr)
virtual Bool canAccessSlice(Bool &reask) const
Can the column data manager handle access to a cell slice? If not, the caller should do slicing itsel...
virtual void putDComplexV(uInt aRowNr, const DComplex *aDataPtr)
virtual void getScalarV(uInt aRowNr, void *aDataPtr)=0
adios2::Variable< T > itsAdiosVariable
uInt nelements() const
The number of elements in this IPosition.
virtual void getfloatV(uInt aRowNr, Float *aDataPtr)
virtual void putScalarColumnCellsuIntV(const RefRows &rownrs, const Vector< uInt > *dataPtr)
virtual void getSliceIntV(uInt rownr, const Slicer &ns, Array< Int > *dataPtr)
virtual void putShortV(uInt aRowNr, const Short *aDataPtr)
virtual void putScalarColumnCellsuShortV(const RefRows &rownrs, const Vector< uShort > *dataPtr)
std::string itsAdiosDataType
virtual void getuCharV(uInt aRowNr, uChar *aDataPtr)
virtual void getArrayColumnCellsV(const RefRows &rownrs, void *dataPtr)
Get some array values in the column.
void columnSliceVToSelection(const Slicer &ns)
virtual void putIntV(uInt aRowNr, const Int *aDataPtr)
virtual void getuShortV(uInt aRowNr, uShort *aDataPtr)
virtual void getScalarColumnCellsComplexV(const RefRows &rownrs, Vector< Complex > *dataPtr)
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
virtual void getScalarColumnCellsV(const RefRows &rownrs, void *dataPtr)
Get some scalar values in the column.
virtual Bool canAccessColumnSlice(Bool &reask) const
Can the column data manager handle access to a column slice? If not, the caller should access the col...
void toAdios(const T *data)
virtual void putuIntV(uInt aRowNr, const uInt *aDataPtr)
virtual void getStringV(uInt aRowNr, String *aDataPtr)
virtual void getSliceuIntV(uInt rownr, const Slicer &ns, Array< uInt > *dataPtr)
String: the storage and methods of handling collections of characters.
void fromAdios(void *dataPtr)
virtual void putScalarColumnCellsShortV(const RefRows &rownrs, const Vector< Short > *dataPtr)
virtual void getSliceStringV(uInt rownr, const Slicer &ns, Array< String > *dataPtr)
bool Bool
Define the standard types used by Casacore.
std::complex< Float > Complex
virtual void getSliceBoolV(uInt rownr, const Slicer &ns, Array< Bool > *dataPtr)
Get the array value in the given row.
virtual void putSliceComplexV(uInt rownr, const Slicer &ns, const Array< Complex > *dataPtr)
virtual void putSliceStringV(uInt rownr, const Slicer &ns, const Array< String > *dataPtr)
virtual void putSliceuCharV(uInt rownr, const Slicer &ns, const Array< uChar > *dataPtr)
void scalarVToSelection(uInt rownr)
virtual void putuShortV(uInt aRowNr, const uShort *aDataPtr)
virtual void putuCharV(uInt aRowNr, const uChar *aDataPtr)
void toAdios(const void *dataPtr)
virtual void putScalarColumnCellsdoubleV(const RefRows &rownrs, const Vector< double > *dataPtr)
virtual void putComplexV(uInt aRowNr, const Complex *aDataPtr)
virtual void putdoubleV(uInt aRowNr, const Double *aDataPtr)
Adios2StMan::impl * itsStManPtr
adios2::Dims itsAdiosShape
virtual void putArrayColumnCellsV(const RefRows &rownrs, const void *dataPtr)
Put some array values in the column.
virtual void putSliceBoolV(uInt rownr, const Slicer &ns, const Array< Bool > *dataPtr)
Put the array value into the given row.
virtual void putArrayV(uInt rownr, const void *dataPtr)
Put the array value into the given row.
Adios2StManColumnT(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr< adios2::IO > aAdiosIO)
virtual void putScalarColumnCellsIntV(const RefRows &rownrs, const Vector< Int > *dataPtr)
virtual void putColumnSliceV(const Slicer &ns, const void *dataPtr)
Put into a section of all arrays in the column.
virtual void putSlicefloatV(uInt rownr, const Slicer &ns, const Array< float > *dataPtr)
std::shared_ptr< adios2::Engine > itsAdiosEngine
virtual void putScalarColumnCellsfloatV(const RefRows &rownrs, const Vector< float > *dataPtr)
virtual void getScalarColumnCellsIntV(const RefRows &rownrs, Vector< Int > *dataPtr)
virtual void putSlicedoubleV(uInt rownr, const Slicer &ns, const Array< double > *dataPtr)
virtual void putScalarColumnCellsV(const RefRows &rownrs, const void *dataPtr)=0
Put some scalar values in the column.
virtual void getArrayV(uInt rownr, void *dataPtr)
Get the array value in the given row.