28 #ifndef TABLES_TILEDSHAPESTMAN_H
29 #define TABLES_TILEDSHAPESTMAN_H
33 #include <casacore/casa/aips.h>
34 #include <casacore/tables/DataMan/TiledStMan.h>
35 #include <casacore/casa/Containers/Block.h>
36 #include <casacore/casa/BasicSL/String.h>
Abstract base class for a data manager.
String: the storage and methods of handling collections of characters.
virtual String dataManagerType() const
Get the type name of the data manager (i.e.
virtual TSMCube * getHypercube(rownr_t rownr)
Get the hypercube in which the given row is stored.
virtual DataManager * clone() const
Clone this object.
virtual Record dataManagerSpec() const
Return a record containing data manager specifications and info.
void addHypercube(rownr_t rownr, const IPosition &cubeShape, const IPosition &tileShape)
Add a hypercube.
void extendHypercube(rownr_t rownr, uInt cubeNr)
Extend the hypercube with the given number of elements in the last dimension.
virtual void setShape(rownr_t rownr, TSMCube *hypercube, const IPosition &shape, const IPosition &tileShape)
Set the shape and tile shape of the given hypercube.
uInt nrUsedRowMap_p
The nr of elements used in the map blocks.
virtual TSMCube * getHypercube(rownr_t rownr, IPosition &position)
Get the hypercube in which the given row is stored.
Int lastHC_p
The last hypercube found.
Block< uInt > rowMap_p
The map of row number to cube and position in cube.
virtual Bool canAccessColumn() const
TiledShapeStMan can access a column if there are 2 hypercubes and the first one is empty.
static DataManager * makeObject(const String &dataManagerType, const Record &spec)
Make the object from the type name string.
Int findHypercube(const IPosition &shape)
Find the hypercube for the given shape.
virtual TSMCube * singleHypercube()
Test if only one hypercube is used by this storage manager.
TiledShapeStMan(const String &hypercolumnName, const Record &spec)
IPosition defaultTileShape_p
The default tile shape.
TiledShapeStMan(const String &hypercolumnName, const IPosition &defaultTileShape, uInt64 maximumCacheSize=0)
Create a TiledShapeStMan storage manager for the hypercolumn with the given name.
virtual void readHeader(rownr_t nrrow, Bool firstTime)
Read the header info.
TiledShapeStMan & operator=(const TiledShapeStMan &)
Forbid assignment.
void addRow64(rownr_t nrrow)
Add rows to the storage manager.
void extendRowMap(rownr_t nrow)
Extend the map of row numbers to cube number plus offset will new empty entries.
void updateRowMap(uInt cubeNr, uInt pos, rownr_t rownr)
Update the map of row numbers to cube number plus offset.
TiledShapeStMan(const TiledShapeStMan &)
Forbid copy constructor.
TiledShapeStMan()
Create a TiledShapeStMan.
virtual void setupCheck(const TableDesc &tableDesc, const Vector< String > &dataNames) const
Check if the hypercolumn definition fits this storage manager.
virtual Bool flush(AipsIO &, Bool fsync)
Flush and optionally fsync the data.
virtual IPosition defaultTileShape() const
Get the default tile shape.
virtual void create64(rownr_t nrrow)
Let the storage manager create files as needed for a new table.
rownr_t nrow() const
Get the nr of rows in this storage manager.
uInt maximumCacheSize() const
Get the current maximum cache size (in MiB (MibiByte)).
const IPosition & tileShape(rownr_t rownr) const
Get the tile shape of the data in the given row.
this file contains all the compiler specific defines
TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape.
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.
unsigned long long uInt64