casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes
casa::ColumnCache Class Reference

A caching object for a table column. More...

#include <ColumnCache.h>

List of all members.

Public Member Functions

 ColumnCache ()
 Constructor.
void setIncrement (uInt increment)
 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.
void invalidate ()
 Invalidate the cache.
Int offset (uInt rownr) const
 Calculate the offset in the cached data for the given row.
const void * dataPtr () const
 Give a pointer to the data.
uInt start () const
 Give the start, end (including), and increment row number of the cached column values.
uInt end () const
uInt incr () const

Private Attributes

uInt itsStart
uInt itsEnd
uInt 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

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

Definition at line 83 of file ColumnCache.h.


Constructor & Destructor Documentation

Constructor.

It sets the increment to 1 and calls invalidate.


Member Function Documentation

const void * casa::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 140 of file ColumnCache.h.

References itsData.

Referenced by casa::ScalarColumn< Complex >::get().

uInt casa::ColumnCache::end ( ) const [inline]

Definition at line 113 of file ColumnCache.h.

References itsEnd.

uInt casa::ColumnCache::incr ( ) const [inline]

Definition at line 114 of file ColumnCache.h.

References itsIncr.

void casa::ColumnCache::invalidate ( ) [inline]

Invalidate the cache.

This clears the data pointer and sets startRow>endRow.

Definition at line 129 of file ColumnCache.h.

Int casa::ColumnCache::offset ( uInt  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 134 of file ColumnCache.h.

References itsEnd, itsIncr, and itsStart.

Referenced by casa::ScalarColumn< Complex >::get().

void casa::ColumnCache::set ( uInt  startRow,
uInt  endRow,
const void *  dataPtr 
)

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

void casa::ColumnCache::setIncrement ( uInt  increment) [inline]

Set the increment to the given value.

Definition at line 124 of file ColumnCache.h.

References itsIncr.

uInt casa::ColumnCache::start ( ) const [inline]

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

Definition at line 112 of file ColumnCache.h.

References itsStart.


Member Data Documentation

const void* casa::ColumnCache::itsData [private]

Definition at line 120 of file ColumnCache.h.

Referenced by dataPtr().

Definition at line 118 of file ColumnCache.h.

Referenced by end(), and offset().

Definition at line 119 of file ColumnCache.h.

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

Definition at line 117 of file ColumnCache.h.

Referenced by offset(), and start().


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