28 #ifndef ADIOS2STMANCOLUMN_H
29 #define ADIOS2STMANCOLUMN_H
31 #include <unordered_map>
32 #include <casacore/casa/Arrays/Array.h>
33 #include <casacore/tables/DataMan/StManColumnBase.h>
34 #include <casacore/tables/Tables/RefRows.h>
47 virtual void create(std::shared_ptr<adios2::Engine> aAdiosEngine,
119 virtual void toAdios(
const void *dataPtr, std::size_t offset=0) = 0;
120 virtual void fromAdios(
void *dataPtr, std::size_t offset=0) = 0;
157 void create(std::shared_ptr<adios2::Engine> aAdiosEngine,
char aOpenMode)
174 void toAdios(
const void *data, std::size_t offset)
176 const T *tData =
static_cast<const T *
>(data);
185 T *tData =
static_cast<T *
>(data);
193 const void *data = arrayPtr->
getVStorage(deleteIt);
211 using Adios2StManColumnT::Adios2StManColumnT;
void putColumnSliceCellsV(const RefRows &, const Slicer &, const ArrayBase &)
Put into a section of some arrays in the column.
void putColumnSliceV(const Slicer &, const ArrayBase &)
Put into a section of all arrays in the column.
void getColumnSliceV(const Slicer &, ArrayBase &)
Get a section of all arrays in the column.
void getColumnSliceCellsV(const RefRows &, const Slicer &, ArrayBase &)
Get a section of some arrays in the column.
void getArrayV(rownr_t rownr, ArrayBase &data)
Get the array value in the given row.
const String itsStringArrayBarrier
void getSliceV(rownr_t, const Slicer &, ArrayBase &)
Get a section of the array in the given row.
void putSliceV(rownr_t, const Slicer &, const ArrayBase &)
Put into a section of the array in the given row.
void putArrayV(rownr_t rownr, const ArrayBase &data)
Put the array value into the given row.
adios2::Variable< T > itsAdiosVariable
void toAdios(const ArrayBase *arrayPtr)
void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)
void fromAdios(void *data, std::size_t offset)
void toAdios(const void *data, std::size_t offset)
void fromAdios(ArrayBase *arrayPtr)
virtual void putColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) override
Put into a section of some arrays in the column.
virtual void getScalarColumnV(ArrayBase &dataPtr) override
The rest of the get and put functions.
adios2::Dims itsAdiosShape
virtual void putdouble(rownr_t aRowNr, const Double *aDataPtr) override
virtual void putSliceV(rownr_t rownr, const Slicer &slicer, const ArrayBase &data) override
Put into a section of the array in the given row.
virtual void getDComplex(rownr_t aRowNr, DComplex *aDataPtr) override
void columnSliceVToSelection(const Slicer &ns)
Bool canChangeShape() const override
Can the data manager handle chaging the shape of an existing array? Default is no.
virtual void getArrayColumnCellsV(const RefRows &rownrs, ArrayBase &data) override
Get some array values in the column.
virtual void getColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) override
Get a section of some arrays in the column.
adios2::Dims itsAdiosCount
virtual void getuInt(rownr_t aRowNr, uInt *aDataPtr) override
virtual void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)=0
void columnSliceCellsVToSelection(const RefRows &rows, const Slicer &ns)
void sliceVToSelection(rownr_t rownr, const Slicer &ns)
void scalarColumnVToSelection()
std::shared_ptr< adios2::Engine > itsAdiosEngine
virtual void putDComplex(rownr_t aRowNr, const DComplex *aDataPtr) override
virtual void putScalarColumnV(const ArrayBase &dataPtr) override
Put all scalar values in the column.
virtual void putuInt(rownr_t aRowNr, const uInt *aDataPtr) override
virtual void getArrayColumnV(ArrayBase &data) override
Get all array values in the column.
void arrayColumnVToSelection()
virtual void putShort(rownr_t aRowNr, const Short *aDataPtr) override
virtual void getArrayV(rownr_t rownr, ArrayBase &dataPtr) override
Get the array value in the given row.
virtual void putuChar(rownr_t aRowNr, const uChar *aDataPtr) override
virtual void getuShort(rownr_t aRowNr, uShort *aDataPtr) override
virtual void putColumnSliceV(const Slicer &slicer, const ArrayBase &data) override
Put into a section of all arrays in the column.
virtual void getBool(rownr_t aRowNr, Bool *aDataPtr) override
scalar get/put
virtual void getInt64(rownr_t aRowNr, Int64 *aDataPtr) override
virtual void putArrayColumnCellsV(const RefRows &rownrs, const ArrayBase &data) override
Put some array values in the column.
std::string itsAdiosDataType
Adios2StManColumn(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr< adios2::IO > aAdiosIO)
virtual void getShort(rownr_t aRowNr, Short *aDataPtr) override
virtual void getScalarColumnCellsV(const RefRows &rownrs, ArrayBase &dataPtr) override
Get some scalar values in the column.
virtual void putScalarColumnCellsV(const RefRows &rownrs, const ArrayBase &dataPtr) override
Put some scalar values in the column.
virtual void putuShort(rownr_t aRowNr, const uShort *aDataPtr) override
void putScalar(rownr_t rownr, const void *dataPtr)
virtual void fromAdios(ArrayBase *arrayPtr)=0
void columnSliceCellsVToSelection(rownr_t row_start, rownr_t row_end, const Slicer &ns)
virtual void putComplex(rownr_t aRowNr, const Complex *aDataPtr) override
virtual void getuChar(rownr_t aRowNr, uChar *aDataPtr) override
std::unordered_map< rownr_t, IPosition > itsCasaShapes
void getScalar(rownr_t rownr, void *dataPtr)
virtual void getSliceV(rownr_t rownr, const Slicer &slicer, ArrayBase &data) override
Get a section of the array in the given row.
virtual void getString(rownr_t aRowNr, String *aDataPtr) override
virtual void putInt(rownr_t aRowNr, const Int *aDataPtr) override
adios2::Dims itsAdiosStart
void setShape(rownr_t aRowNr, const IPosition &aShape) override
Set the shape of an (variable-shaped) array in the given row.
void scalarToSelection(rownr_t rownr)
std::shared_ptr< adios2::IO > itsAdiosIO
virtual void fromAdios(void *dataPtr, std::size_t offset=0)=0
void scalarColumnCellsVToSelection(const RefRows &rownrs)
virtual void putArrayV(rownr_t rownr, const ArrayBase &data) override
Put the array value into the given row.
Adios2StMan::impl * itsStManPtr
virtual void putString(rownr_t aRowNr, const String *aDataPtr) override
virtual IPosition shape(rownr_t aRowNr) override
Get the shape of the item in the given row.
virtual void putBool(rownr_t aRowNr, const Bool *aDataPtr) override
Put the scalar value into the given row.
virtual void toAdios(const void *dataPtr, std::size_t offset=0)=0
virtual void getInt(rownr_t aRowNr, Int *aDataPtr) override
virtual void getfloat(rownr_t aRowNr, Float *aDataPtr) override
virtual void getComplex(rownr_t aRowNr, Complex *aDataPtr) override
virtual void getdouble(rownr_t aRowNr, Double *aDataPtr) override
void arrayVToSelection(rownr_t rownr)
virtual void putInt64(rownr_t aRowNr, const Int64 *aDataPtr) override
virtual void putfloat(rownr_t aRowNr, const Float *aDataPtr) override
virtual void toAdios(const ArrayBase *arrayPtr)=0
virtual void putArrayColumnV(const ArrayBase &data) override
Put all array values in the column.
virtual void getColumnSliceV(const Slicer &slicer, ArrayBase &data) override
Get a section of all arrays in the column.
virtual void setShapeColumn(const IPosition &aShape) override
Set the shape of all (fixed-shaped) arrays in the column.
Non-templated base class for templated Array class.
virtual void freeVStorage(const void *&storage, bool deleteIt) const
virtual void * getVStorage(bool &deleteIt)
The following functions behave the same as the corresponding getStorage functions in the derived temp...
virtual void putVStorage(void *&storage, bool deleteAndCopy)
String: the storage and methods of handling collections of characters.
std::complex< Float > Complex
std::complex< Double > DComplex
this file contains all the compiler specific defines
LatticeExprNode max(const LatticeExprNode &left, const LatticeExprNode &right)
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.