casa
5.7.0-16
|
The bucket index for a group of columns in the Standard Storage Manager. More...
#include <SSMIndex.h>
Public Member Functions | |
SSMIndex (SSMBase *aPtrSSM, uInt rowsPerBucket=0) | |
Create the object with the given number of rows per bucket. More... | |
~SSMIndex () | |
void | get (AipsIO &anOs) |
Read the bucket index from the AipsIO object. More... | |
void | put (AipsIO &anOs) const |
Write the bucket index into the AipsIO object. More... | |
void | recreate () |
Recreate the object in case all rows are deleted from the table. More... | |
Vector< uInt > | getBuckets () const |
Return all the bucketnrs used in this index. More... | |
uInt | getNrBuckets () const |
Return the nr of buckets used. More... | |
void | setNrColumns (Int aNrColumns, uInt aSizeUsed) |
Set nr of columns use this index. More... | |
void | addRow (uInt aNrRows) |
Add some rows. More... | |
void | showStatistics (ostream &anOs) const |
Show Statistics of index. More... | |
Int | removeColumn (Int anOffset, uInt nbits) |
A column is removed. More... | |
Int | getFree (Int &anOffset, uInt nbits) const |
Try to find free space for a field with a given length (best fit). More... | |
void | addColumn (Int anOffset, uInt nbits) |
reuse the space at offset for a field with the given nr of bits. More... | |
Int | deleteRow (uInt aRowNumber) |
Delete the given row. More... | |
uInt | getRowsPerBucket () const |
Get the number of rows that fits in ach bucket. More... | |
void | find (uInt aRowNumber, uInt &aBucketNr, uInt &aStartRow, uInt &anEndRow, const String &colName) const |
Find the bucket containing the given row. More... | |
Private Member Functions | |
uInt | getIndex (uInt aRowNr, const String &colName) const |
Get the index of the bucket containing the given row. More... | |
Private Attributes | |
SSMBase * | itsSSMPtr |
uInt | itsNUsed |
Block< uInt > | itsLastRow |
Block< uInt > | itsBucketNumber |
std::map< Int, Int > | itsFreeSpace |
uInt | itsRowsPerBucket |
Int | itsNrColumns |
The bucket index for a group of columns in the Standard Storage Manager.
Internal
SSMIndex represent the bucket index in the Standard Storage Manager.
In SSMBase it is described that an index is used to map row number to data bucket in a bucket stream. This class implements this index. It serves 2 purposes:
Definition at line 86 of file SSMIndex.h.
Create the object with the given number of rows per bucket.
Note that the default is needed to create the object for existing tables.
casacore::SSMIndex::~SSMIndex | ( | ) |
reuse the space at offset for a field with the given nr of bits.
This is used when column has been added to this bucket.
void casacore::SSMIndex::addRow | ( | uInt | aNrRows | ) |
Add some rows.
void casacore::SSMIndex::find | ( | uInt | aRowNumber, |
uInt & | aBucketNr, | ||
uInt & | aStartRow, | ||
uInt & | anEndRow, | ||
const String & | colName | ||
) | const |
Find the bucket containing the given row.
An exception is thrown if not found. It also sets the first and last row number fitting in that bucket.
Try to find free space for a field with a given length (best fit).
-1 is returned if no fit is found. Otherwise it returns the nr of bytes left unused.
Get the index of the bucket containing the given row.
uInt casacore::SSMIndex::getNrBuckets | ( | ) | const |
Return the nr of buckets used.
|
inline |
Get the number of rows that fits in ach bucket.
Definition at line 176 of file SSMIndex.h.
References itsRowsPerBucket.
void casacore::SSMIndex::recreate | ( | ) |
Recreate the object in case all rows are deleted from the table.
A column is removed.
Set the free space at offset for a field with the given nr of bits. It returns the nr of columns still used in this index.
Set nr of columns use this index.
void casacore::SSMIndex::showStatistics | ( | ostream & | anOs | ) | const |
Show Statistics of index.
Definition at line 163 of file SSMIndex.h.
Definition at line 166 of file SSMIndex.h.
Definition at line 158 of file SSMIndex.h.
|
private |
Definition at line 172 of file SSMIndex.h.
|
private |
Definition at line 155 of file SSMIndex.h.
|
private |
Definition at line 169 of file SSMIndex.h.
Referenced by getRowsPerBucket().
|
private |
Definition at line 152 of file SSMIndex.h.