26#ifndef TABLES_TSMCUBEBUFF_H
27#define TABLES_TSMCUBEBUFF_H
31#include <casacore/casa/aips.h>
32#include <casacore/tables/DataMan/TSMCube.h>
135 const TSMColumn* lastCoordColumn)
override;
140 char* section,
uInt colnr,
141 uInt localPixelSize,
uInt externalPixelSize,
142 Bool writeFlag)
override;
148 char* section,
uInt colnr,
149 uInt localPixelSize,
uInt externalPixelSize,
150 Bool writeFlag)
override;
157 Bool forceSmaller,
Bool userSet)
override;
void setCacheSize(const IPosition &sliceShape, const IPosition &windowStart, const IPosition &windowLength, const IPosition &axisPath, Bool forceSmaller, Bool userSet) override
Set the cache size for the given slice and access path.
void setCacheSize(uInt cacheSize, Bool forceSmaller, Bool userSet) override
Resize the cache object.
~TSMCubeBuff() override=default
void extend(uInt64 nr, const Record &coordValues, const TSMColumn *lastCoordColumn) override
Extend the last dimension of the cube with the given number.
TSMCubeBuff(const TSMCubeBuff &)=delete
Forbid copy constructor.
std::unique_ptr< BucketBuffered > cache_p
The bucket cache.
TSMCubeBuff & operator=(const TSMCubeBuff &)=delete
Forbid assignment.
virtual void flushCache() override
Flush the data in the cache.
void accessSection(const IPosition &start, const IPosition &end, char *section, uInt colnr, uInt localPixelSize, uInt externalPixelSize, Bool writeFlag) override
Read or write a section in the cube.
BucketBuffered * getCache()
Get the cache object.
void accessStrided(const IPosition &start, const IPosition &end, const IPosition &stride, char *section, uInt colnr, uInt localPixelSize, uInt externalPixelSize, Bool writeFlag) override
Read or write a section in a strided way.
void showCacheStatistics(ostream &os) const override
Show the cache statistics.
void resyncCache() override
Resync the cache object.
TSMCubeBuff(TiledStMan *stman, AipsIO &ios)
Reconstruct the hypercube by reading its data from the AipsIO stream.
TSMCubeBuff(TiledStMan *stman, TSMFile *file, const IPosition &cubeShape, const IPosition &tileShape, const Record &values, Int64 fileOffset)
Construct the hypercube using the given file with the given shape.
void setShape(const IPosition &cubeShape, const IPosition &tileShape) override
Set the hypercube shape.
void makeCache() override
Construct the cache object (if not constructed yet).
void deleteCache() override
Delete the cache object.
uInt cacheSize() const
Get the current cache size (in buckets).
const IPosition & tileShape() const
Get the shape of the tiles.
const IPosition & cubeShape() const
Get the shape of the hypercube.
this file contains all the compiler specific defines
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.
unsigned long long uInt64