ColumnCache.h
Classes
- ColumnCache -- A caching object for a table column. (full description)
Interface
- Public Members
- ColumnCache()
- void setIncrement (uInt increment)
- void set (uInt startRow, uInt endRow, const void* dataPtr)
- void invalidate()
- Int offset (uInt rownr) const
- const void* dataPtr() const
- uInt start() const
- uInt end() const
- uInt incr() const
Prerequisite
Synopsis
ColumnCache acts as a cache for a table column.
It contains a pointer to data and the start and end row number
for which these data are valid. An increment is part of the object
and is usually 0 or 1. The value 0 is used for data which is
valid for multiple rows (as used in
IncrementalStMan).
The value 1 is used for data stored consecutevily in a buffer for
each row (as used in // StManAipsIO).
The ColumnCache object is created and updated by the data manager.
The top level ScalarColumn object
contains a pointer to the cache object. In this way the
ScalarColumn::get can often be executed by a few inlined
statements which improves performance considerably.
The invalidate function can be used to invalidate the
cache. This is for instance needed when a table lock is acquired
or released to be sure that the cache gets refreshed.
Motivation
This class was developed to improve the performance for getting a scalar.
Member Description
Constructor.
It sets the increment to 1 and calls invalidate.
Set the increment to the given value.
void set (uInt startRow, uInt endRow, const void* dataPtr)
Set the start and end row number for which the given data pointer
is valid.
Invalidate the cache.
This clears the data pointer and sets startRow>endRow.
Int offset (uInt rownr) const
Calculate the offset in the cached data for the given row.
-1 is returned when the row is not within the cached rows.
const void* dataPtr() const
Give a pointer to the data.
The calling function has to do a proper cast after which the
calculated offset can be added to get the proper data.
uInt start() const
Give the start, end (including), and increment row number
of the cached column values.
uInt end() const
uInt incr() const