Loading...
Searching...
No Matches
Adios2StManColumn.h
Go to the documentation of this file.
//# Adios2StManColumn.h: A Column in the ADIOS2 Storage Manager
//# Copyright (C) 2018
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: casa-feedback@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
#ifndef ADIOS2STMANCOLUMN_H
#define ADIOS2STMANCOLUMN_H
#include <unordered_map>
#include <casacore/casa/Arrays/Array.h>
#include <casacore/tables/DataMan/StManColumnBase.h>
#include <casacore/tables/Tables/RefRows.h>
#include "Adios2StManImpl.h"
namespace casacore
{
class Adios2StManColumn : public StManColumnBase
{
public:
Adios2StManColumn(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr<adios2::IO> aAdiosIO);
virtual void create(std::shared_ptr<adios2::Engine> aAdiosEngine,
char aOpenMode) = 0;
virtual void setShapeColumn(const IPosition &aShape) override;
virtual IPosition shape(rownr_t aRowNr) override;
Bool canChangeShape() const override;
void setShape (rownr_t aRowNr, const IPosition& aShape) override;
int getDataTypeSize();
int getDataType();
String getColumnName();
protected:
// scalar get/put
virtual void getBool(rownr_t aRowNr, Bool *aDataPtr) override;
virtual void getuChar(rownr_t aRowNr, uChar *aDataPtr) override;
virtual void getShort(rownr_t aRowNr, Short *aDataPtr) override;
virtual void getuShort(rownr_t aRowNr, uShort *aDataPtr) override;
virtual void getInt(rownr_t aRowNr, Int *aDataPtr) override;
virtual void getuInt(rownr_t aRowNr, uInt *aDataPtr) override;
virtual void getInt64(rownr_t aRowNr, Int64 *aDataPtr) override;
virtual void getfloat(rownr_t aRowNr, Float *aDataPtr) override;
virtual void getdouble(rownr_t aRowNr, Double *aDataPtr) override;
virtual void getComplex(rownr_t aRowNr, Complex *aDataPtr) override;
virtual void getDComplex(rownr_t aRowNr, DComplex *aDataPtr) override;
virtual void getString(rownr_t aRowNr, String *aDataPtr) override;
virtual void putBool(rownr_t aRowNr, const Bool *aDataPtr) override;
virtual void putuChar(rownr_t aRowNr, const uChar *aDataPtr) override;
virtual void putShort(rownr_t aRowNr, const Short *aDataPtr) override;
virtual void putuShort(rownr_t aRowNr, const uShort *aDataPtr) override;
virtual void putInt(rownr_t aRowNr, const Int *aDataPtr) override;
virtual void putuInt(rownr_t aRowNr, const uInt *aDataPtr) override;
virtual void putInt64(rownr_t aRowNr, const Int64 *aDataPtr) override;
virtual void putfloat(rownr_t aRowNr, const Float *aDataPtr) override;
virtual void putdouble(rownr_t aRowNr, const Double *aDataPtr) override;
virtual void putComplex(rownr_t aRowNr, const Complex *aDataPtr) override;
virtual void putDComplex(rownr_t aRowNr, const DComplex *aDataPtr) override;
virtual void putString(rownr_t aRowNr, const String *aDataPtr) override;
// The rest of the get and put functions
virtual void getScalarColumnV (ArrayBase& dataPtr) override;
virtual void putScalarColumnV (const ArrayBase& dataPtr) override;
virtual void getScalarColumnCellsV (const RefRows& rownrs,
ArrayBase& dataPtr) override;
virtual void putScalarColumnCellsV (const RefRows& rownrs,
const ArrayBase& dataPtr) override;
virtual void getArrayV (rownr_t rownr, ArrayBase& dataPtr) override;
virtual void putArrayV (rownr_t rownr, const ArrayBase& data) override;
virtual void getArrayColumnV (ArrayBase& data) override;
virtual void putArrayColumnV (const ArrayBase& data) override;
virtual void getArrayColumnCellsV (const RefRows& rownrs,
ArrayBase& data) override;
virtual void putArrayColumnCellsV (const RefRows& rownrs,
const ArrayBase& data) override;
virtual void getSliceV (rownr_t rownr, const Slicer& slicer, ArrayBase& data) override;
virtual void putSliceV (rownr_t rownr, const Slicer& slicer,
const ArrayBase& data) override;
virtual void getColumnSliceV (const Slicer& slicer, ArrayBase& data) override;
virtual void putColumnSliceV (const Slicer& slicer, const ArrayBase& data) override;
virtual void getColumnSliceCellsV (const RefRows& rownrs,
const Slicer& slicer, ArrayBase& data) override;
virtual void putColumnSliceCellsV (const RefRows& rownrs,
const Slicer& slicer,
const ArrayBase& data) override;
private:
void putScalar(rownr_t rownr, const void *dataPtr);
void getScalar(rownr_t rownr, void *dataPtr);
virtual void toAdios(const ArrayBase *arrayPtr) = 0;
virtual void fromAdios(ArrayBase *arrayPtr) = 0;
virtual void toAdios(const void *dataPtr, std::size_t offset=0) = 0;
virtual void fromAdios(void *dataPtr, std::size_t offset=0) = 0;
protected:
void scalarToSelection(rownr_t rownr);
void scalarColumnVToSelection();
void scalarColumnCellsVToSelection(const RefRows &rownrs);
void arrayVToSelection(rownr_t rownr);
void arrayColumnVToSelection();
void sliceVToSelection(rownr_t rownr, const Slicer &ns);
void columnSliceVToSelection(const Slicer &ns);
void columnSliceCellsVToSelection(const RefRows &rows, const Slicer &ns);
void columnSliceCellsVToSelection(rownr_t row_start, rownr_t row_end, const Slicer &ns);
Adios2StMan::impl *itsStManPtr;
String itsColumnName;
IPosition itsCasaShape;
std::unordered_map<rownr_t, IPosition> itsCasaShapes;
Bool isShapeFixed = false;
std::shared_ptr<adios2::IO> itsAdiosIO;
std::shared_ptr<adios2::Engine> itsAdiosEngine;
std::string itsAdiosDataType;
adios2::Dims itsAdiosShape = {std::numeric_limits<rownr_t>::max()};
adios2::Dims itsAdiosStart = {0};
adios2::Dims itsAdiosCount = {1};
}; // class Adios2StManColumn
template <class T>
class Adios2StManColumnT : public Adios2StManColumn
{
public:
using Adios2StManColumn::Adios2StManColumn;
void create(std::shared_ptr<adios2::Engine> aAdiosEngine, char aOpenMode)
{
itsAdiosEngine = aAdiosEngine;
itsAdiosVariable = itsAdiosIO->InquireVariable<T>(itsColumnName);
if (!itsAdiosVariable && aOpenMode == 'w')
{
itsAdiosVariable = itsAdiosIO->DefineVariable<T>(
itsColumnName,
itsAdiosShape,
itsAdiosStart,
itsAdiosCount);
}
}
private:
adios2::Variable<T> itsAdiosVariable;
void toAdios(const void *data, std::size_t offset)
{
const T *tData = static_cast<const T *>(data);
if(!isShapeFixed)
itsAdiosVariable.SetShape(itsAdiosShape);
itsAdiosVariable.SetSelection({itsAdiosStart, itsAdiosCount});
itsAdiosEngine->Put<T>(itsAdiosVariable, tData + offset, adios2::Mode::Sync);
}
void fromAdios(void *data, std::size_t offset)
{
T *tData = static_cast<T *>(data);
itsAdiosVariable.SetSelection({itsAdiosStart, itsAdiosCount});
itsAdiosEngine->Get<T>(itsAdiosVariable, tData + offset, adios2::Mode::Sync);
}
void toAdios(const ArrayBase *arrayPtr)
{
Bool deleteIt;
const void *data = arrayPtr->getVStorage(deleteIt);
toAdios(data, 0);
arrayPtr->freeVStorage (data, deleteIt);
}
void fromAdios(ArrayBase *arrayPtr)
{
Bool deleteIt;
void *data = arrayPtr->getVStorage(deleteIt);
fromAdios(data, 0);
arrayPtr->putVStorage(data, deleteIt);
}
}; // class Adios2StManColumnT
class Adios2StManColumnString : public Adios2StManColumnT<std::string>
{
public:
using Adios2StManColumnT::Adios2StManColumnT;
protected:
void putArrayV(rownr_t rownr, const ArrayBase& data);
void getArrayV(rownr_t rownr, ArrayBase& data);
void getSliceV(rownr_t /*aRowNr*/, const Slicer &/*ns*/, ArrayBase &/*data*/);
void putSliceV(rownr_t /*aRowNr*/, const Slicer &/*ns*/, const ArrayBase &/*data*/);
void getColumnSliceV(const Slicer &/*ns*/, ArrayBase &/*data*/);
void putColumnSliceV(const Slicer &/*ns*/, const ArrayBase &/*data*/);
void getColumnSliceCellsV(const RefRows& /*rownrs*/, const Slicer& /*slicer*/, ArrayBase& /*data*/);
void putColumnSliceCellsV(const RefRows& /*rownrs*/, const Slicer& /*slicer*/, const ArrayBase& /*data*/);
private:
const String itsStringArrayBarrier = "ADIOS2BARRIER";
}; // class Adios2StManColumnString
} // namespace casacore
#endif // ADIOS2STMANCOLUMN_H
Adios2StManImpl.h
casacore::Adios2StManColumnString
Definition Adios2StManColumn.h:207
casacore::Adios2StManColumnString::putColumnSliceCellsV
void putColumnSliceCellsV(const RefRows &, const Slicer &, const ArrayBase &)
Put into a section of some arrays in the column.
casacore::Adios2StManColumnString::putColumnSliceV
void putColumnSliceV(const Slicer &, const ArrayBase &)
Put into a section of all arrays in the column.
casacore::Adios2StManColumnString::getColumnSliceV
void getColumnSliceV(const Slicer &, ArrayBase &)
Get a section of all arrays in the column.
casacore::Adios2StManColumnString::getColumnSliceCellsV
void getColumnSliceCellsV(const RefRows &, const Slicer &, ArrayBase &)
Get a section of some arrays in the column.
casacore::Adios2StManColumnString::getArrayV
void getArrayV(rownr_t rownr, ArrayBase &data)
Get the array value in the given row.
casacore::Adios2StManColumnString::itsStringArrayBarrier
const String itsStringArrayBarrier
Definition Adios2StManColumn.h:222
casacore::Adios2StManColumnString::getSliceV
void getSliceV(rownr_t, const Slicer &, ArrayBase &)
Get a section of the array in the given row.
casacore::Adios2StManColumnString::putSliceV
void putSliceV(rownr_t, const Slicer &, const ArrayBase &)
Put into a section of the array in the given row.
casacore::Adios2StManColumnString::putArrayV
void putArrayV(rownr_t rownr, const ArrayBase &data)
Put the array value into the given row.
casacore::Adios2StManColumnT
Definition Adios2StManColumn.h:150
casacore::Adios2StManColumnT::itsAdiosVariable
adios2::Variable< T > itsAdiosVariable
Definition Adios2StManColumn.h:170
casacore::Adios2StManColumnT::toAdios
void toAdios(const ArrayBase *arrayPtr)
Definition Adios2StManColumn.h:188
casacore::Adios2StManColumnT::create
void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)
Definition Adios2StManColumn.h:155
casacore::Adios2StManColumnT::Adios2StManColumn
Adios2StManColumn(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr< adios2::IO > aAdiosIO)
casacore::Adios2StManColumnT::fromAdios
void fromAdios(void *data, std::size_t offset)
Definition Adios2StManColumn.h:181
casacore::Adios2StManColumnT::toAdios
void toAdios(const void *data, std::size_t offset)
Definition Adios2StManColumn.h:172
casacore::Adios2StManColumnT::fromAdios
void fromAdios(ArrayBase *arrayPtr)
Definition Adios2StManColumn.h:196
casacore::Adios2StManColumn::putColumnSliceCellsV
virtual void putColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, const ArrayBase &data) override
Put into a section of some arrays in the column.
casacore::Adios2StManColumn::getScalarColumnV
virtual void getScalarColumnV(ArrayBase &dataPtr) override
The rest of the get and put functions.
casacore::Adios2StManColumn::itsAdiosShape
adios2::Dims itsAdiosShape
Definition Adios2StManColumn.h:142
casacore::Adios2StManColumn::putdouble
virtual void putdouble(rownr_t aRowNr, const Double *aDataPtr) override
casacore::Adios2StManColumn::putSliceV
virtual void putSliceV(rownr_t rownr, const Slicer &slicer, const ArrayBase &data) override
Put into a section of the array in the given row.
casacore::Adios2StManColumn::getDComplex
virtual void getDComplex(rownr_t aRowNr, DComplex *aDataPtr) override
casacore::Adios2StManColumn::columnSliceVToSelection
void columnSliceVToSelection(const Slicer &ns)
casacore::Adios2StManColumn::canChangeShape
Bool canChangeShape() const override
Can the data manager handle chaging the shape of an existing array?
casacore::Adios2StManColumn::getArrayColumnCellsV
virtual void getArrayColumnCellsV(const RefRows &rownrs, ArrayBase &data) override
Get some array values in the column.
casacore::Adios2StManColumn::getColumnSliceCellsV
virtual void getColumnSliceCellsV(const RefRows &rownrs, const Slicer &slicer, ArrayBase &data) override
Get a section of some arrays in the column.
casacore::Adios2StManColumn::itsAdiosCount
adios2::Dims itsAdiosCount
Definition Adios2StManColumn.h:144
casacore::Adios2StManColumn::getuInt
virtual void getuInt(rownr_t aRowNr, uInt *aDataPtr) override
casacore::Adios2StManColumn::create
virtual void create(std::shared_ptr< adios2::Engine > aAdiosEngine, char aOpenMode)=0
casacore::Adios2StManColumn::columnSliceCellsVToSelection
void columnSliceCellsVToSelection(const RefRows &rows, const Slicer &ns)
casacore::Adios2StManColumn::sliceVToSelection
void sliceVToSelection(rownr_t rownr, const Slicer &ns)
casacore::Adios2StManColumn::scalarColumnVToSelection
void scalarColumnVToSelection()
casacore::Adios2StManColumn::itsAdiosEngine
std::shared_ptr< adios2::Engine > itsAdiosEngine
Definition Adios2StManColumn.h:140
casacore::Adios2StManColumn::putDComplex
virtual void putDComplex(rownr_t aRowNr, const DComplex *aDataPtr) override
casacore::Adios2StManColumn::itsCasaShape
IPosition itsCasaShape
Definition Adios2StManColumn.h:135
casacore::Adios2StManColumn::putScalarColumnV
virtual void putScalarColumnV(const ArrayBase &dataPtr) override
Put all scalar values in the column.
casacore::Adios2StManColumn::putuInt
virtual void putuInt(rownr_t aRowNr, const uInt *aDataPtr) override
casacore::Adios2StManColumn::getArrayColumnV
virtual void getArrayColumnV(ArrayBase &data) override
Get all array values in the column.
casacore::Adios2StManColumn::arrayColumnVToSelection
void arrayColumnVToSelection()
casacore::Adios2StManColumn::putShort
virtual void putShort(rownr_t aRowNr, const Short *aDataPtr) override
casacore::Adios2StManColumn::getArrayV
virtual void getArrayV(rownr_t rownr, ArrayBase &dataPtr) override
Get the array value in the given row.
casacore::Adios2StManColumn::putuChar
virtual void putuChar(rownr_t aRowNr, const uChar *aDataPtr) override
casacore::Adios2StManColumn::getuShort
virtual void getuShort(rownr_t aRowNr, uShort *aDataPtr) override
casacore::Adios2StManColumn::putColumnSliceV
virtual void putColumnSliceV(const Slicer &slicer, const ArrayBase &data) override
Put into a section of all arrays in the column.
casacore::Adios2StManColumn::getBool
virtual void getBool(rownr_t aRowNr, Bool *aDataPtr) override
scalar get/put
casacore::Adios2StManColumn::getInt64
virtual void getInt64(rownr_t aRowNr, Int64 *aDataPtr) override
casacore::Adios2StManColumn::putArrayColumnCellsV
virtual void putArrayColumnCellsV(const RefRows &rownrs, const ArrayBase &data) override
Put some array values in the column.
casacore::Adios2StManColumn::itsAdiosDataType
std::string itsAdiosDataType
Definition Adios2StManColumn.h:141
casacore::Adios2StManColumn::Adios2StManColumn
Adios2StManColumn(Adios2StMan::impl *aParent, int aDataType, String aColName, std::shared_ptr< adios2::IO > aAdiosIO)
casacore::Adios2StManColumn::getShort
virtual void getShort(rownr_t aRowNr, Short *aDataPtr) override
casacore::Adios2StManColumn::getScalarColumnCellsV
virtual void getScalarColumnCellsV(const RefRows &rownrs, ArrayBase &dataPtr) override
Get some scalar values in the column.
casacore::Adios2StManColumn::putScalarColumnCellsV
virtual void putScalarColumnCellsV(const RefRows &rownrs, const ArrayBase &dataPtr) override
Put some scalar values in the column.
casacore::Adios2StManColumn::putuShort
virtual void putuShort(rownr_t aRowNr, const uShort *aDataPtr) override
casacore::Adios2StManColumn::putScalar
void putScalar(rownr_t rownr, const void *dataPtr)
casacore::Adios2StManColumn::fromAdios
virtual void fromAdios(ArrayBase *arrayPtr)=0
casacore::Adios2StManColumn::columnSliceCellsVToSelection
void columnSliceCellsVToSelection(rownr_t row_start, rownr_t row_end, const Slicer &ns)
casacore::Adios2StManColumn::putComplex
virtual void putComplex(rownr_t aRowNr, const Complex *aDataPtr) override
casacore::Adios2StManColumn::getuChar
virtual void getuChar(rownr_t aRowNr, uChar *aDataPtr) override
casacore::Adios2StManColumn::itsColumnName
String itsColumnName
Definition Adios2StManColumn.h:134
casacore::Adios2StManColumn::itsCasaShapes
std::unordered_map< rownr_t, IPosition > itsCasaShapes
Definition Adios2StManColumn.h:136
casacore::Adios2StManColumn::getScalar
void getScalar(rownr_t rownr, void *dataPtr)
casacore::Adios2StManColumn::getSliceV
virtual void getSliceV(rownr_t rownr, const Slicer &slicer, ArrayBase &data) override
Get a section of the array in the given row.
casacore::Adios2StManColumn::getString
virtual void getString(rownr_t aRowNr, String *aDataPtr) override
casacore::Adios2StManColumn::putInt
virtual void putInt(rownr_t aRowNr, const Int *aDataPtr) override
casacore::Adios2StManColumn::itsAdiosStart
adios2::Dims itsAdiosStart
Definition Adios2StManColumn.h:143
casacore::Adios2StManColumn::setShape
void setShape(rownr_t aRowNr, const IPosition &aShape) override
Set the shape of an (variable-shaped) array in the given row.
casacore::Adios2StManColumn::scalarToSelection
void scalarToSelection(rownr_t rownr)
casacore::Adios2StManColumn::itsAdiosIO
std::shared_ptr< adios2::IO > itsAdiosIO
Definition Adios2StManColumn.h:139
casacore::Adios2StManColumn::fromAdios
virtual void fromAdios(void *dataPtr, std::size_t offset=0)=0
casacore::Adios2StManColumn::scalarColumnCellsVToSelection
void scalarColumnCellsVToSelection(const RefRows &rownrs)
casacore::Adios2StManColumn::putArrayV
virtual void putArrayV(rownr_t rownr, const ArrayBase &data) override
Put the array value into the given row.
casacore::Adios2StManColumn::itsStManPtr
Adios2StMan::impl * itsStManPtr
Definition Adios2StManColumn.h:132
casacore::Adios2StManColumn::getDataType
int getDataType()
casacore::Adios2StManColumn::putString
virtual void putString(rownr_t aRowNr, const String *aDataPtr) override
casacore::Adios2StManColumn::getDataTypeSize
int getDataTypeSize()
casacore::Adios2StManColumn::shape
virtual IPosition shape(rownr_t aRowNr) override
Get the shape of the item in the given row.
casacore::Adios2StManColumn::putBool
virtual void putBool(rownr_t aRowNr, const Bool *aDataPtr) override
Put the scalar value into the given row.
casacore::Adios2StManColumn::toAdios
virtual void toAdios(const void *dataPtr, std::size_t offset=0)=0
casacore::Adios2StManColumn::getInt
virtual void getInt(rownr_t aRowNr, Int *aDataPtr) override
casacore::Adios2StManColumn::getfloat
virtual void getfloat(rownr_t aRowNr, Float *aDataPtr) override
casacore::Adios2StManColumn::isShapeFixed
Bool isShapeFixed
Definition Adios2StManColumn.h:137
casacore::Adios2StManColumn::getColumnName
String getColumnName()
casacore::Adios2StManColumn::getComplex
virtual void getComplex(rownr_t aRowNr, Complex *aDataPtr) override
casacore::Adios2StManColumn::getdouble
virtual void getdouble(rownr_t aRowNr, Double *aDataPtr) override
casacore::Adios2StManColumn::arrayVToSelection
void arrayVToSelection(rownr_t rownr)
casacore::Adios2StManColumn::putInt64
virtual void putInt64(rownr_t aRowNr, const Int64 *aDataPtr) override
casacore::Adios2StManColumn::putfloat
virtual void putfloat(rownr_t aRowNr, const Float *aDataPtr) override
casacore::Adios2StManColumn::toAdios
virtual void toAdios(const ArrayBase *arrayPtr)=0
casacore::Adios2StManColumn::putArrayColumnV
virtual void putArrayColumnV(const ArrayBase &data) override
Put all array values in the column.
casacore::Adios2StManColumn::getColumnSliceV
virtual void getColumnSliceV(const Slicer &slicer, ArrayBase &data) override
Get a section of all arrays in the column.
casacore::Adios2StManColumn::setShapeColumn
virtual void setShapeColumn(const IPosition &aShape) override
Set the shape of all (fixed-shaped) arrays in the column.
casacore::Adios2StMan::impl
Definition Adios2StManImpl.h:42
casacore::ArrayBase
Non-templated base class for templated Array class.
Definition ArrayBase.h:71
casacore::ArrayBase::freeVStorage
virtual void freeVStorage(const void *&storage, bool deleteIt) const
casacore::ArrayBase::getVStorage
virtual void * getVStorage(bool &deleteIt)
The following functions behave the same as the corresponding getStorage functions in the derived temp...
casacore::ArrayBase::putVStorage
virtual void putVStorage(void *&storage, bool deleteAndCopy)
casacore::IPosition
Definition IPosition.h:117
casacore::RefRows
Definition RefRows.h:84
casacore::Slicer
Definition Slicer.h:287
casacore::StManColumnBase::StManColumnBase
StManColumnBase(int dataType)
Default constructor.
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore
this file contains all the compiler specific defines
Definition mainpage.dox:28
casacore::uChar
unsigned char uChar
Definition aipstype.h:45
casacore::offset
int offset(int, int) const
compute a linear offset from array indicies
casacore::Short
short Short
Definition aipstype.h:46
casacore::uInt
unsigned int uInt
Definition aipstype.h:49
casacore::uShort
unsigned short uShort
Definition aipstype.h:47
casacore::Int64
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size).
Definition aipsxtype.h:36
casacore::Float
float Float
Definition aipstype.h:52
casacore::Int
int Int
Definition aipstype.h:48
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
casacore::Double
double Double
Definition aipstype.h:53
casacore::rownr_t
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44