Loading...
Searching...
No Matches
casacore::ColumnCache Class Reference
tables package (libcasa_tables) » Tables_module » Tables_module_internal_classes

More...

`#include <ColumnCache.h>`

## Public Member Functions

| ColumnCache ()
| Constructor.
void | setIncrement (rownr_t increment)
| Set the increment to the given value.
void | set (rownr_t startRow, rownr_t endRow, const void *dataPtr)
| Set the start and end row number for which the given data pointer is valid.
void | invalidate ()
| Invalidate the cache.
Int64 | offset (rownr_t rownr) const
| Calculate the offset in the cached data for the given row.
const void * | dataPtr () const
| Give a pointer to the data.
rownr_t | start () const
| Give the start, end (including), and increment row number of the cached column values.
rownr_t | end () const
rownr_t | incr () const

## Private Attributes

rownr_t | itsStart
rownr_t | itsEnd
rownr_t | itsIncr
const void * | itsData

## Detailed Description

A caching object for a table column.

### Intended use:

Internal

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25

### Prerequisite

- ScalarColumn

### 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.

### To Do

- For ConcatColumn add the ability to have other ColumnCache objects using this one and invalidate them as well.

Definition at line 84 of file ColumnCache.h.

## Constructor & Destructor Documentation

## ColumnCache()

casacore::ColumnCache::ColumnCache | ( |  | ) |

Constructor.

It sets the increment to 1 and calls invalidate.

## Member Function Documentation

## dataPtr()

const void * casacore::ColumnCache::dataPtr | ( |  | ) | const

inline

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.

Definition at line 148 of file ColumnCache.h.

References itsData.

Referenced by set().

## end()

rownr_t casacore::ColumnCache::end | ( |  | ) | const

inline

Definition at line 115 of file ColumnCache.h.

References itsEnd.

## incr()

rownr_t casacore::ColumnCache::incr | ( |  | ) | const

inline

Definition at line 117 of file ColumnCache.h.

References itsIncr.

## invalidate()

void casacore::ColumnCache::invalidate | ( |  | ) |

inline

Invalidate the cache.

This clears the data pointer and sets startRow>endRow.

Definition at line 133 of file ColumnCache.h.

References set().

## offset()

Int64 casacore::ColumnCache::offset | ( | rownr_t | rownr | ) | const

inline

Calculate the offset in the cached data for the given row.

-1 is returned if the row is not within the cached rows.

Definition at line 138 of file ColumnCache.h.

References itsEnd, itsIncr, itsStart, and offset().

Referenced by offset().

## set()

void casacore::ColumnCache::set | ( | rownr_t | startRow,
|  | rownr_t | endRow,
|  | const void * | dataPtr )

Set the start and end row number for which the given data pointer is valid.

References dataPtr().

Referenced by invalidate().

## setIncrement()

void casacore::ColumnCache::setIncrement | ( | rownr_t | increment | ) |

inline

Set the increment to the given value.

Definition at line 128 of file ColumnCache.h.

References itsIncr.

## start()

rownr_t casacore::ColumnCache::start | ( |  | ) | const

inline

Give the start, end (including), and increment row number of the cached column values.

Definition at line 113 of file ColumnCache.h.

References itsStart.

## Member Data Documentation

## itsData

const void* casacore::ColumnCache::itsData

private

Definition at line 124 of file ColumnCache.h.

Referenced by dataPtr().

## itsEnd

rownr_t casacore::ColumnCache::itsEnd

private

Definition at line 122 of file ColumnCache.h.

Referenced by end(), and offset().

## itsIncr

rownr_t casacore::ColumnCache::itsIncr

private

Definition at line 123 of file ColumnCache.h.

Referenced by incr(), offset(), and setIncrement().

## itsStart

rownr_t casacore::ColumnCache::itsStart

private

Definition at line 121 of file ColumnCache.h.

Referenced by offset(), and start().

The documentation for this class was generated from the following file:

- tables/Tables/ColumnCache.h