Go to the documentation of this file.
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>
Define the structure of a Casacore table.
A Vector of integers, for indexing into Array<T> objects.
virtual TSMCube * getHypercube(uInt rownr)
Get the hypercube in which the given row is stored.
virtual TSMCube * getHypercube(uInt rownr, IPosition &position)
Get the hypercube in which the given row is stored.
AipsIO is the object persistency mechanism of Casacore
Abstract base class for a data manager.
TiledShapeStMan()
Create a TiledShapeStMan.
virtual Bool canAccessColumn(Bool &reask) const
TiledShapeStMan can access a column if there are 2 hypercubes and the first one is empty.
TiledShapeStMan(const String &hypercolumnName, const IPosition &defaultTileShape, uInt maximumCacheSize=0)
Create a TiledShapeStMan storage manager for the hypercolumn with the given name.
TiledShapeStMan(const String &hypercolumnName, const Record &spec)
void updateRowMap(uInt cubeNr, uInt pos, uInt rownr)
Update the map of row numbers to cube number plus offset.
Tiled hypercube in a table.
uInt maximumCacheSize() const
Get the current maximum cache size (in MiB (MibiByte)).
virtual String dataManagerType() const
Get the type name of the data manager (i.e.
uInt nrUsedRowMap_p
The nr of elements used in the map blocks.
virtual void create(uInt nrrow)
Let the storage manager create files as needed for a new table.
void extendRowMap(uInt nrow)
Extend the map of row numbers to cube number plus offset will new empty entries.
void addHypercube(uInt rownr, const IPosition &cubeShape, const IPosition &tileShape)
Add a hypercube.
Block< uInt > rowMap_p
The map of row number to cube and position in cube.
Int findHypercube(const IPosition &shape)
Find the hypercube for the given shape.
virtual IPosition defaultTileShape() const
Get the default tile shape.
static DataManager * makeObject(const String &dataManagerType, const Record &spec)
Make the object from the type name string.
Int lastHC_p
The last hypercube found.
Base class for Tiled Storage Manager classes.
virtual void setupCheck(const TableDesc &tableDesc, const Vector< String > &dataNames) const
Check if the hypercolumn definition fits this storage manager.
virtual DataManager * clone() const
Clone this object.
IPosition defaultTileShape_p
The default tile shape.
TableExprNode shape(const TableExprNode &array)
Function operating on any scalar or array resulting in a Double array containing the shape.
virtual void setShape(uInt rownr, TSMCube *hypercube, const IPosition &shape, const IPosition &tileShape)
Set the shape and tile shape of the given hypercube.
uInt nrow() const
Get the nr of rows in this storage manager.
virtual TSMCube * singleHypercube()
Test if only one hypercube is used by this storage manager.
virtual Record dataManagerSpec() const
Return a record containing data manager specifications and info.
this file contains all the compiler specific defines
Tiled Data Storage Manager using the shape as id.
TiledShapeStMan & operator=(const TiledShapeStMan &)
Forbid assignment.
virtual void readHeader(uInt nrrow, Bool firstTime)
Read the header info.
const IPosition & tileShape(uInt rownr) const
Get the tile shape of the data in the given row.
String: the storage and methods of handling collections of characters.
void addRow(uInt nrrow)
Add rows to the storage manager.
bool Bool
Define the standard types used by Casacore.
A hierarchical collection of named fields of various types.
A 1-D Specialization of the Array class.
TiledShapeStMan(const TiledShapeStMan &)
Forbid copy constructor.
void extendHypercube(uInt rownr, uInt cubeNr)
Extend the hypercube with the given number of elements in the last dimension.
virtual Bool flush(AipsIO &, Bool fsync)
Flush and optionally fsync the data.