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

A Column in the Incremental Storage Manager. More...

#include <ISMColumn.h>

Inheritance diagram for casa::ISMColumn:
casa::StManColumn casa::DataManagerColumn casa::ISMIndColumn

List of all members.

Public Member Functions

 ISMColumn (ISMBase *parent, int dataType, uInt colnr)
 Create a ISMColumn object with the given parent.
 ~ISMColumn ()
virtual void setShapeColumn (const IPosition &shape)
 Set the shape of an array in the column.
virtual uInt ndim (uInt rownr)
 Get the dimensionality of the item in the given row.
virtual IPosition shape (uInt rownr)
 Get the shape of the array in the given row.
virtual void doCreate (ISMBucket *)
 Let the column object initialize itself for a newly created table.
virtual void getFile (uInt nrrow)
 Let the column object initialize itself for an existing table.
virtual Bool flush (uInt nrrow, Bool fsync)
 Flush and optionally fsync the data.
void resync (uInt nrrow)
 Resync the storage manager with the new file contents.
virtual void reopenRW ()
 Let the column reopen its data files for read/write access.
virtual void getBoolV (uInt rownr, Bool *dataPtr)
 Get a scalar value in the given row.
virtual void getuCharV (uInt rownr, uChar *dataPtr)
virtual void getShortV (uInt rownr, Short *dataPtr)
virtual void getuShortV (uInt rownr, uShort *dataPtr)
virtual void getIntV (uInt rownr, Int *dataPtr)
virtual void getuIntV (uInt rownr, uInt *dataPtr)
virtual void getfloatV (uInt rownr, float *dataPtr)
virtual void getdoubleV (uInt rownr, double *dataPtr)
virtual void getComplexV (uInt rownr, Complex *dataPtr)
virtual void getDComplexV (uInt rownr, DComplex *dataPtr)
virtual void getStringV (uInt rownr, String *dataPtr)
virtual void putBoolV (uInt rownr, const Bool *dataPtr)
 Put a scalar value in the given row.
virtual void putuCharV (uInt rownr, const uChar *dataPtr)
virtual void putShortV (uInt rownr, const Short *dataPtr)
virtual void putuShortV (uInt rownr, const uShort *dataPtr)
virtual void putIntV (uInt rownr, const Int *dataPtr)
virtual void putuIntV (uInt rownr, const uInt *dataPtr)
virtual void putfloatV (uInt rownr, const float *dataPtr)
virtual void putdoubleV (uInt rownr, const double *dataPtr)
virtual void putComplexV (uInt rownr, const Complex *dataPtr)
virtual void putDComplexV (uInt rownr, const DComplex *dataPtr)
virtual void putStringV (uInt rownr, const String *dataPtr)
virtual void getScalarColumnBoolV (Vector< Bool > *dataPtr)
 Get the scalar values in the entire column.
virtual void getScalarColumnuCharV (Vector< uChar > *dataPtr)
virtual void getScalarColumnShortV (Vector< Short > *dataPtr)
virtual void getScalarColumnuShortV (Vector< uShort > *dataPtr)
virtual void getScalarColumnIntV (Vector< Int > *dataPtr)
virtual void getScalarColumnuIntV (Vector< uInt > *dataPtr)
virtual void getScalarColumnfloatV (Vector< float > *dataPtr)
virtual void getScalarColumndoubleV (Vector< double > *dataPtr)
virtual void getScalarColumnComplexV (Vector< Complex > *dataPtr)
virtual void getScalarColumnDComplexV (Vector< DComplex > *dataPtr)
virtual void getScalarColumnStringV (Vector< String > *dataPtr)
virtual void putScalarColumnBoolV (const Vector< Bool > *dataPtr)
 Put the scalar values into the entire column.
virtual void putScalarColumnuCharV (const Vector< uChar > *dataPtr)
virtual void putScalarColumnShortV (const Vector< Short > *dataPtr)
virtual void putScalarColumnuShortV (const Vector< uShort > *dataPtr)
virtual void putScalarColumnIntV (const Vector< Int > *dataPtr)
virtual void putScalarColumnuIntV (const Vector< uInt > *dataPtr)
virtual void putScalarColumnfloatV (const Vector< float > *dataPtr)
virtual void putScalarColumndoubleV (const Vector< double > *dataPtr)
virtual void putScalarColumnComplexV (const Vector< Complex > *dataPtr)
virtual void putScalarColumnDComplexV (const Vector< DComplex > *dataPtr)
virtual void putScalarColumnStringV (const Vector< String > *dataPtr)
virtual void getScalarColumnCellsBoolV (const RefRows &rownrs, Vector< Bool > *dataPtr)
 Get the scalar values in some cells of the column.
virtual void getScalarColumnCellsuCharV (const RefRows &rownrs, Vector< uChar > *dataPtr)
virtual void getScalarColumnCellsShortV (const RefRows &rownrs, Vector< Short > *dataPtr)
virtual void getScalarColumnCellsuShortV (const RefRows &rownrs, Vector< uShort > *dataPtr)
virtual void getScalarColumnCellsIntV (const RefRows &rownrs, Vector< Int > *dataPtr)
virtual void getScalarColumnCellsuIntV (const RefRows &rownrs, Vector< uInt > *dataPtr)
virtual void getScalarColumnCellsfloatV (const RefRows &rownrs, Vector< float > *dataPtr)
virtual void getScalarColumnCellsdoubleV (const RefRows &rownrs, Vector< double > *dataPtr)
virtual void getScalarColumnCellsComplexV (const RefRows &rownrs, Vector< Complex > *dataPtr)
virtual void getScalarColumnCellsDComplexV (const RefRows &rownrs, Vector< DComplex > *dataPtr)
virtual void getScalarColumnCellsStringV (const RefRows &rownrs, Vector< String > *dataPtr)
virtual void getArrayBoolV (uInt rownr, Array< Bool > *dataPtr)
 Get an array value in the given row.
virtual void getArrayuCharV (uInt rownr, Array< uChar > *dataPtr)
virtual void getArrayShortV (uInt rownr, Array< Short > *dataPtr)
virtual void getArrayuShortV (uInt rownr, Array< uShort > *dataPtr)
virtual void getArrayIntV (uInt rownr, Array< Int > *dataPtr)
virtual void getArrayuIntV (uInt rownr, Array< uInt > *dataPtr)
virtual void getArrayfloatV (uInt rownr, Array< float > *dataPtr)
virtual void getArraydoubleV (uInt rownr, Array< double > *dataPtr)
virtual void getArrayComplexV (uInt rownr, Array< Complex > *dataPtr)
virtual void getArrayDComplexV (uInt rownr, Array< DComplex > *dataPtr)
virtual void getArrayStringV (uInt rownr, Array< String > *dataPtr)
virtual void putArrayBoolV (uInt rownr, const Array< Bool > *dataPtr)
 Put an array value in the given row.
virtual void putArrayuCharV (uInt rownr, const Array< uChar > *dataPtr)
virtual void putArrayShortV (uInt rownr, const Array< Short > *dataPtr)
virtual void putArrayuShortV (uInt rownr, const Array< uShort > *dataPtr)
virtual void putArrayIntV (uInt rownr, const Array< Int > *dataPtr)
virtual void putArrayuIntV (uInt rownr, const Array< uInt > *dataPtr)
virtual void putArrayfloatV (uInt rownr, const Array< float > *dataPtr)
virtual void putArraydoubleV (uInt rownr, const Array< double > *dataPtr)
virtual void putArrayComplexV (uInt rownr, const Array< Complex > *dataPtr)
virtual void putArrayDComplexV (uInt rownr, const Array< DComplex > *dataPtr)
virtual void putArrayStringV (uInt rownr, const Array< String > *dataPtr)
virtual void addRow (uInt newNrrow, uInt oldNrrow)
 Add (newNrrow-oldNrrow) rows to the column and initialize the new rows when needed.
void remove (uInt bucketRownr, ISMBucket *bucket, uInt bucketNrrow, uInt newNrrow)
 Remove the given row in the bucket from the column.
virtual void handleCopy (uInt rownr, const char *value)
 Give a derived class the opportunity to react on the duplication of a value.
virtual void handleRemove (uInt rownr, const char *value)
 Give a derived class the opportunity to react on the removal of a value.
uInt getFixedLength () const
 Get the fixed length of the data value in a cell of this column (0 = variable length).
uInt nelements () const
 Get the nr of elements in this data value.

Static Public Member Functions

static Conversion::ValueFunctiongetReaduInt (Bool asCanonical)
 Get the function needed to read/write a uInt from/to external format.
static Conversion::ValueFunctiongetWriteuInt (Bool asCanonical)

Protected Member Functions

int isLastValueInvalid (Int rownr) const
 Test if the last value is invalid for this row.
void getValue (uInt rownr, void *value, Bool setCache)
 Get the value for this row.
void putValue (uInt rownr, const void *value)
 Put the value for this row.

Protected Attributes

ISMBasestmanPtr_p
 Pointer to the parent storage manager.
uInt fixedLength_p
 Length of column cell value in storage format (0 = variable length).
uInt colnr_p
 Column sequence number of this column.
IPosition shape_p
 The shape of the column.
uInt nrelem_p
 Number of elements in a value for this column.
uInt nrcopy_p
 Number of values to be copied.
Int startRow_p
 Cache for interval for which last value read is valid.
Int endRow_p
void * lastValue_p
uInt lastRowPut_p
 The last row for which a value has been put.
uInt typeSize_p
 The size of the data type in local format.
Conversion::ValueFunctionwriteFunc_p
 Pointer to a convert function for writing.
Conversion::ValueFunctionreadFunc_p
 Pointer to a convert function for reading.
ObjCompareFunc * compareFunc_p
 Pointer to a compare function.

Private Member Functions

 ISMColumn (const ISMColumn &)
 Forbid copy constructor.
ISMColumnoperator= (const ISMColumn &)
 Forbid assignment.
void init ()
 Initialize part of the object.
void clear ()
 Clear the object (used by destructor and init).
void putFromRow (uInt rownr, const char *data, uInt lenData)
 Put the value in all buckets from the given row on.
void putData (ISMBucket *bucket, uInt bucketStartRow, uInt bucketNrrow, uInt bucketRownr, const char *data, uInt lenData, Bool afterLastRow, Bool canSplit)
 Put a data value into the bucket.
void replaceData (ISMBucket *bucket, uInt bucketStartRow, uInt bucketNrrow, uInt bucketRownr, uInt &offset, const char *data, uInt lenData, Bool canSplit=True)
 Replace a value at the given offset in the bucket.
Bool addData (ISMBucket *bucket, uInt bucketStartRow, uInt bucketNrrow, uInt bucketRownr, uInt inx, const char *data, uInt lenData, Bool afterLastRow=False, Bool canSplit=True)
 Add a value at the given index in the bucket.
void handleSplit (ISMBucket &bucket, const Block< Bool > &duplicated)
 Handle the duplicated values after a bucket split.
virtual Bool compareValue (const void *val1, const void *val2) const
 Compare the values.

Static Private Member Functions

static uInt fromString (void *out, const void *in, uInt n, Conversion::ValueFunction *writeLeng)
 Handle a String in copying to/from external format.
static uInt toString (void *out, const void *in, uInt n, Conversion::ValueFunction *readLeng)
static uInt writeStringBE (void *out, const void *in, uInt n)
static uInt readStringBE (void *out, const void *in, uInt n)
static uInt writeStringLE (void *out, const void *in, uInt n)
static uInt readStringLE (void *out, const void *in, uInt n)

Detailed Description

A Column in the Incremental Storage Manager.

Intended use:

Internal

Review Status

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

Prerequisite

Etymology

ISMColumn represents a Column in the Incremental Storage Manager.

Synopsis

ISMColumn handles the access to a column containing scalars or direct arrays of the various data types. It uses class ISMBucket to get and put the data into the correct bucket. When the value does not fit in the bucket, the bucket is split and the new bucket is added to the storage manager.

The object maintains a variable indicating the last row ever put. This is used to decide if a put of a value is valid until the end of the table or for that one row only. In this way it does not make any difference if rows are added before or after a value is put
A value put before or at the last row ever put will only affect that one row. The rows before and after it keep their original value. If needed that value is copied.

To optimize (especially sequential) access to the column, ISMColumn maintains the last value gotten and the rows for which it is valid. In this way a get does not need to access the data in the bucket.

ISMColumn use the static conversion functions in the Conversion framework to get/put the data in external format (be it canonical or local). Most data types are fixed length, but some are variable length (e.g. String). In external format variable length data is preceeded by its total length (which includes the length itself). This makes it possible to get the length of a data value without having to interpret it, which is easy when (re)moving a value. For this reason ISMColumn contains its own conversion functions for Strings.

ISMColumn also acts as the base class for more specialized ISM column classes (i.e. ISMIndColumn for indirect columns). In this way ISMBase can hold a block of ISMColumn* for any column. Furthermore ISMColumn contains the hooks to allow a derived class to use other ISMColumn functions (e.g. there are "action" functions for a derived class to react on the duplication or removal of a data value (e.g. due to a bucket split).

Motivation

ISMColumn encapsulates all operations on an ISM Column.

Definition at line 115 of file ISMColumn.h.


Constructor & Destructor Documentation

casa::ISMColumn::ISMColumn ( ISMBase parent,
int  dataType,
uInt  colnr 
)

Create a ISMColumn object with the given parent.

It initializes the various variables. It keeps the pointer to its parent (but does not own it).

casa::ISMColumn::ISMColumn ( const ISMColumn ) [private]

Forbid copy constructor.


Member Function Documentation

Bool casa::ISMColumn::addData ( ISMBucket bucket,
uInt  bucketStartRow,
uInt  bucketNrrow,
uInt  bucketRownr,
uInt  inx,
const char *  data,
uInt  lenData,
Bool  afterLastRow = False,
Bool  canSplit = True 
) [private]

Add a value at the given index in the bucket.

If the bucket is too small, it will be split (if allowed).

virtual void casa::ISMColumn::addRow ( uInt  newNrrow,
uInt  oldNrrow 
) [virtual]

Add (newNrrow-oldNrrow) rows to the column and initialize the new rows when needed.

Reimplemented in casa::ISMIndColumn.

void casa::ISMColumn::clear ( ) [private]

Clear the object (used by destructor and init).

Reimplemented in casa::ISMIndColumn.

virtual Bool casa::ISMColumn::compareValue ( const void *  val1,
const void *  val2 
) const [private, virtual]

Compare the values.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::doCreate ( ISMBucket ) [virtual]

Let the column object initialize itself for a newly created table.

This is meant for a derived class.

Reimplemented in casa::ISMIndColumn.

virtual Bool casa::ISMColumn::flush ( uInt  nrrow,
Bool  fsync 
) [virtual]

Flush and optionally fsync the data.

This is meant for a derived class.

Reimplemented in casa::ISMIndColumn.

static uInt casa::ISMColumn::fromString ( void *  out,
const void *  in,
uInt  n,
Conversion::ValueFunction writeLeng 
) [static, private]

Handle a String in copying to/from external format.

virtual void casa::ISMColumn::getArrayBoolV ( uInt  rownr,
Array< Bool > *  dataPtr 
) [virtual]

Get an array value in the given row.

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayComplexV ( uInt  rownr,
Array< Complex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayDComplexV ( uInt  rownr,
Array< DComplex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArraydoubleV ( uInt  rownr,
Array< double > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayfloatV ( uInt  rownr,
Array< float > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayIntV ( uInt  rownr,
Array< Int > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayShortV ( uInt  rownr,
Array< Short > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayStringV ( uInt  rownr,
Array< String > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayuCharV ( uInt  rownr,
Array< uChar > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayuIntV ( uInt  rownr,
Array< uInt > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getArrayuShortV ( uInt  rownr,
Array< uShort > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::getBoolV ( uInt  rownr,
Bool dataPtr 
) [virtual]

Get a scalar value in the given row.

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getComplexV ( uInt  rownr,
Complex *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getDComplexV ( uInt  rownr,
DComplex *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getdoubleV ( uInt  rownr,
double *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getFile ( uInt  nrrow) [virtual]

Let the column object initialize itself for an existing table.

Reimplemented in casa::ISMIndColumn.

Get the fixed length of the data value in a cell of this column (0 = variable length).

Definition at line 416 of file ISMColumn.h.

References fixedLength_p.

virtual void casa::ISMColumn::getfloatV ( uInt  rownr,
float *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getIntV ( uInt  rownr,
Int dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

static Conversion::ValueFunction* casa::ISMColumn::getReaduInt ( Bool  asCanonical) [static]

Get the function needed to read/write a uInt from/to external format.

This is used by other classes to read the length of a variable data value.

virtual void casa::ISMColumn::getScalarColumnBoolV ( Vector< Bool > *  dataPtr) [virtual]

Get the scalar values in the entire column.

The buffer pointed to by dataPtr has to have the correct length. (which is guaranteed by the ScalarColumn getColumn function).

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsBoolV ( const RefRows rownrs,
Vector< Bool > *  dataPtr 
) [virtual]

Get the scalar values in some cells of the column.

The buffer pointed to by dataPtr has to have the correct length. (which is guaranteed by the ScalarColumn getColumnCells function). The default implementation loops through all rows.

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsComplexV ( const RefRows rownrs,
Vector< Complex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsDComplexV ( const RefRows rownrs,
Vector< DComplex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsdoubleV ( const RefRows rownrs,
Vector< double > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsfloatV ( const RefRows rownrs,
Vector< float > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsIntV ( const RefRows rownrs,
Vector< Int > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsShortV ( const RefRows rownrs,
Vector< Short > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsStringV ( const RefRows rownrs,
Vector< String > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsuCharV ( const RefRows rownrs,
Vector< uChar > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsuIntV ( const RefRows rownrs,
Vector< uInt > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnCellsuShortV ( const RefRows rownrs,
Vector< uShort > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnComplexV ( Vector< Complex > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnDComplexV ( Vector< DComplex > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumndoubleV ( Vector< double > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnfloatV ( Vector< float > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnIntV ( Vector< Int > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnShortV ( Vector< Short > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnStringV ( Vector< String > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnuCharV ( Vector< uChar > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnuIntV ( Vector< uInt > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getScalarColumnuShortV ( Vector< uShort > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::getShortV ( uInt  rownr,
Short dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getStringV ( uInt  rownr,
String dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getuCharV ( uInt  rownr,
uChar dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getuIntV ( uInt  rownr,
uInt dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::getuShortV ( uInt  rownr,
uShort dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

void casa::ISMColumn::getValue ( uInt  rownr,
void *  value,
Bool  setCache 
) [protected]

Get the value for this row.

Set the cache if the flag is set.

virtual void casa::ISMColumn::handleCopy ( uInt  rownr,
const char *  value 
) [virtual]

Give a derived class the opportunity to react on the duplication of a value.

It is used by ISMIndColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::handleRemove ( uInt  rownr,
const char *  value 
) [virtual]

Give a derived class the opportunity to react on the removal of a value.

It is used by ISMIndColumn.

Reimplemented in casa::ISMIndColumn.

void casa::ISMColumn::handleSplit ( ISMBucket bucket,
const Block< Bool > &  duplicated 
) [private]

Handle the duplicated values after a bucket split.

void casa::ISMColumn::init ( ) [private]

Initialize part of the object.

It is used by doCreate and getFile.

int casa::ISMColumn::isLastValueInvalid ( Int  rownr) const [inline, protected]

Test if the last value is invalid for this row.

Definition at line 411 of file ISMColumn.h.

References endRow_p.

virtual uInt casa::ISMColumn::ndim ( uInt  rownr) [virtual]

Get the dimensionality of the item in the given row.

This is the same for all rows.

Reimplemented from casa::DataManagerColumn.

Reimplemented in casa::ISMIndColumn.

uInt casa::ISMColumn::nelements ( ) const [inline]

Get the nr of elements in this data value.

Definition at line 421 of file ISMColumn.h.

References nrelem_p.

ISMColumn& casa::ISMColumn::operator= ( const ISMColumn ) [private]

Forbid assignment.

virtual void casa::ISMColumn::putArrayBoolV ( uInt  rownr,
const Array< Bool > *  dataPtr 
) [virtual]

Put an array value in the given row.

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayComplexV ( uInt  rownr,
const Array< Complex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayDComplexV ( uInt  rownr,
const Array< DComplex > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArraydoubleV ( uInt  rownr,
const Array< double > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayfloatV ( uInt  rownr,
const Array< float > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayIntV ( uInt  rownr,
const Array< Int > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayShortV ( uInt  rownr,
const Array< Short > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayStringV ( uInt  rownr,
const Array< String > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayuCharV ( uInt  rownr,
const Array< uChar > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayuIntV ( uInt  rownr,
const Array< uInt > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putArrayuShortV ( uInt  rownr,
const Array< uShort > *  dataPtr 
) [virtual]

Reimplemented from casa::StManColumn.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::putBoolV ( uInt  rownr,
const Bool dataPtr 
) [virtual]

Put a scalar value in the given row.

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putComplexV ( uInt  rownr,
const Complex *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

void casa::ISMColumn::putData ( ISMBucket bucket,
uInt  bucketStartRow,
uInt  bucketNrrow,
uInt  bucketRownr,
const char *  data,
uInt  lenData,
Bool  afterLastRow,
Bool  canSplit 
) [private]

Put a data value into the bucket.

When it is at the first row of the bucket, it replaces the value. Otherwise it is added.

virtual void casa::ISMColumn::putDComplexV ( uInt  rownr,
const DComplex *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putdoubleV ( uInt  rownr,
const double *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putfloatV ( uInt  rownr,
const float *  dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

void casa::ISMColumn::putFromRow ( uInt  rownr,
const char *  data,
uInt  lenData 
) [private]

Put the value in all buckets from the given row on.

virtual void casa::ISMColumn::putIntV ( uInt  rownr,
const Int dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putScalarColumnBoolV ( const Vector< Bool > *  dataPtr) [virtual]

Put the scalar values into the entire column.

The buffer pointed to by dataPtr has to have the correct length. (which is guaranteed by the ScalarColumn putColumn function).

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnComplexV ( const Vector< Complex > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnDComplexV ( const Vector< DComplex > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumndoubleV ( const Vector< double > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnfloatV ( const Vector< float > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnIntV ( const Vector< Int > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnShortV ( const Vector< Short > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnStringV ( const Vector< String > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnuCharV ( const Vector< uChar > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnuIntV ( const Vector< uInt > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putScalarColumnuShortV ( const Vector< uShort > *  dataPtr) [virtual]

Reimplemented from casa::StManColumn.

virtual void casa::ISMColumn::putShortV ( uInt  rownr,
const Short dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putStringV ( uInt  rownr,
const String dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putuCharV ( uInt  rownr,
const uChar dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putuIntV ( uInt  rownr,
const uInt dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

virtual void casa::ISMColumn::putuShortV ( uInt  rownr,
const uShort dataPtr 
) [virtual]

Reimplemented from casa::DataManagerColumn.

void casa::ISMColumn::putValue ( uInt  rownr,
const void *  value 
) [protected]

Put the value for this row.

static uInt casa::ISMColumn::readStringBE ( void *  out,
const void *  in,
uInt  n 
) [static, private]
static uInt casa::ISMColumn::readStringLE ( void *  out,
const void *  in,
uInt  n 
) [static, private]
void casa::ISMColumn::remove ( uInt  bucketRownr,
ISMBucket bucket,
uInt  bucketNrrow,
uInt  newNrrow 
)

Remove the given row in the bucket from the column.

virtual void casa::ISMColumn::reopenRW ( ) [virtual]

Let the column reopen its data files for read/write access.

Reimplemented in casa::ISMIndColumn.

void casa::ISMColumn::replaceData ( ISMBucket bucket,
uInt  bucketStartRow,
uInt  bucketNrrow,
uInt  bucketRownr,
uInt offset,
const char *  data,
uInt  lenData,
Bool  canSplit = True 
) [private]

Replace a value at the given offset in the bucket.

If the bucket is too small, it will be split (if allowed).

void casa::ISMColumn::resync ( uInt  nrrow)

Resync the storage manager with the new file contents.

It resets the last rownr put.

Reimplemented in casa::ISMIndColumn.

virtual void casa::ISMColumn::setShapeColumn ( const IPosition shape) [virtual]

Set the shape of an array in the column.

Reimplemented from casa::DataManagerColumn.

Reimplemented in casa::ISMIndColumn.

virtual IPosition casa::ISMColumn::shape ( uInt  rownr) [virtual]

Get the shape of the array in the given row.

This is the same for all rows.

Reimplemented from casa::DataManagerColumn.

Reimplemented in casa::ISMIndColumn.

static uInt casa::ISMColumn::toString ( void *  out,
const void *  in,
uInt  n,
Conversion::ValueFunction readLeng 
) [static, private]
static uInt casa::ISMColumn::writeStringBE ( void *  out,
const void *  in,
uInt  n 
) [static, private]
static uInt casa::ISMColumn::writeStringLE ( void *  out,
const void *  in,
uInt  n 
) [static, private]

Member Data Documentation

Column sequence number of this column.

Definition at line 327 of file ISMColumn.h.

ObjCompareFunc* casa::ISMColumn::compareFunc_p [protected]

Pointer to a compare function.

Definition at line 350 of file ISMColumn.h.

Definition at line 339 of file ISMColumn.h.

Referenced by isLastValueInvalid().

Length of column cell value in storage format (0 = variable length).

If 0, the value is always preceeded by a uInt giving the length.

Definition at line 325 of file ISMColumn.h.

Referenced by getFixedLength().

The last row for which a value has been put.

Definition at line 342 of file ISMColumn.h.

void* casa::ISMColumn::lastValue_p [protected]

Definition at line 340 of file ISMColumn.h.

Number of values to be copied.

Normally this is nrelem_p, but for complex types it is 2*nrelem_p. When local format is used, it is the number of bytes.

Definition at line 335 of file ISMColumn.h.

Number of elements in a value for this column.

Definition at line 331 of file ISMColumn.h.

Referenced by nelements().

Pointer to a convert function for reading.

Definition at line 348 of file ISMColumn.h.

The shape of the column.

Definition at line 329 of file ISMColumn.h.

Cache for interval for which last value read is valid.

The last value is valid for startRow_p till endRow_p (inclusive).

Definition at line 338 of file ISMColumn.h.

Pointer to the parent storage manager.

Definition at line 322 of file ISMColumn.h.

The size of the data type in local format.

Definition at line 344 of file ISMColumn.h.

Pointer to a convert function for writing.

Definition at line 346 of file ISMColumn.h.


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