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

Read/write indirect arrays. More...

#include <StIndArray.h>

List of all members.

Public Member Functions

 StIndArray (Int64 fileOffset)
 Construct the object with the given file offset.
 StIndArray (const StIndArray &)
 Copy constructor.
StIndArrayoperator= (const StIndArray &)
 Assignment.
 ~StIndArray ()
const IPositionshape () const
 Get the shape.
Int64 fileOffset () const
 Get the file offset.
Bool setShape (StManArrayFile &, int dataType, const IPosition &shape)
 Set the shape and allocate the array in the file.
void getShape (StManArrayFile &ios)
 Read the shape if not read yet.
uInt refCount (StManArrayFile &ios)
 Get the reference count.
void incrementRefCount (StManArrayFile &ios)
 Increment the reference count.
void decrementRefCount (StManArrayFile &ios)
 Decrement the reference count.
void copyData (StManArrayFile &ios, int dataType, const StIndArray &other)
 Copy the data from another array.
void getArrayBoolV (StManArrayFile &, Array< Bool > *dataPtr)
 Get an array value from the file at the offset held in this object.
void getArrayuCharV (StManArrayFile &, Array< uChar > *dataPtr)
void getArrayShortV (StManArrayFile &, Array< Short > *dataPtr)
void getArrayuShortV (StManArrayFile &, Array< uShort > *dataPtr)
void getArrayIntV (StManArrayFile &, Array< Int > *dataPtr)
void getArrayuIntV (StManArrayFile &, Array< uInt > *dataPtr)
void getArrayfloatV (StManArrayFile &, Array< float > *dataPtr)
void getArraydoubleV (StManArrayFile &, Array< double > *dataPtr)
void getArrayComplexV (StManArrayFile &, Array< Complex > *dataPtr)
void getArrayDComplexV (StManArrayFile &, Array< DComplex > *dataPtr)
void getArrayStringV (StManArrayFile &, Array< String > *dataPtr)
void putArrayBoolV (StManArrayFile &, const Array< Bool > *dataPtr)
 Put an array value into the file at the offset held in this object.
void putArrayuCharV (StManArrayFile &, const Array< uChar > *dataPtr)
void putArrayShortV (StManArrayFile &, const Array< Short > *dataPtr)
void putArrayuShortV (StManArrayFile &, const Array< uShort > *dataPtr)
void putArrayIntV (StManArrayFile &, const Array< Int > *dataPtr)
void putArrayuIntV (StManArrayFile &, const Array< uInt > *dataPtr)
void putArrayfloatV (StManArrayFile &, const Array< float > *dataPtr)
void putArraydoubleV (StManArrayFile &, const Array< double > *dataPtr)
void putArrayComplexV (StManArrayFile &, const Array< Complex > *dataPtr)
void putArrayDComplexV (StManArrayFile &, const Array< DComplex > *dataPtr)
void putArrayStringV (StManArrayFile &, const Array< String > *dataPtr)
void getSliceBoolV (StManArrayFile &, const Slicer &, Array< Bool > *dataPtr)
 Get a section of the array from the file at the offset held in this object.
void getSliceuCharV (StManArrayFile &, const Slicer &, Array< uChar > *dataPtr)
void getSliceShortV (StManArrayFile &, const Slicer &, Array< Short > *dataPtr)
void getSliceuShortV (StManArrayFile &, const Slicer &, Array< uShort > *dataPtr)
void getSliceIntV (StManArrayFile &, const Slicer &, Array< Int > *dataPtr)
void getSliceuIntV (StManArrayFile &, const Slicer &, Array< uInt > *dataPtr)
void getSlicefloatV (StManArrayFile &, const Slicer &, Array< float > *dataPtr)
void getSlicedoubleV (StManArrayFile &, const Slicer &, Array< double > *dataPtr)
void getSliceComplexV (StManArrayFile &, const Slicer &, Array< Complex > *dataPtr)
void getSliceDComplexV (StManArrayFile &, const Slicer &, Array< DComplex > *dataPtr)
void getSliceStringV (StManArrayFile &, const Slicer &, Array< String > *dataPtr)
void putSliceBoolV (StManArrayFile &, const Slicer &, const Array< Bool > *dataPtr)
 Put a section of the array into the file at the offset held in this object.
void putSliceuCharV (StManArrayFile &, const Slicer &, const Array< uChar > *dataPtr)
void putSliceShortV (StManArrayFile &, const Slicer &, const Array< Short > *dataPtr)
void putSliceuShortV (StManArrayFile &, const Slicer &, const Array< uShort > *dataPtr)
void putSliceIntV (StManArrayFile &, const Slicer &, const Array< Int > *dataPtr)
void putSliceuIntV (StManArrayFile &, const Slicer &, const Array< uInt > *dataPtr)
void putSlicefloatV (StManArrayFile &, const Slicer &, const Array< float > *dataPtr)
void putSlicedoubleV (StManArrayFile &, const Slicer &, const Array< double > *dataPtr)
void putSliceComplexV (StManArrayFile &, const Slicer &, const Array< Complex > *dataPtr)
void putSliceDComplexV (StManArrayFile &, const Slicer &, const Array< DComplex > *dataPtr)
void putSliceStringV (StManArrayFile &, const Slicer &, const Array< String > *dataPtr)

Private Member Functions

void getSliceData (StManArrayFile &, const Slicer &ns, void *value, const IPosition &userArrayShape, void(*getVec)(StManArrayFile &, Int64, uInt, uInt, uInt, uInt, void *dataPtr))
 Get sliced data, i.e.
void putSliceData (StManArrayFile &, const Slicer &ns, const void *value, const IPosition &userArrayShape, void(*putVec)(StManArrayFile &, Int64, uInt, uInt, uInt, uInt, const void *dataPtr))
 Put sliced data, i.e.
void checkShape (const IPosition &userArrayShape, const IPosition &tableArrayShape) const
 Throw an exception if the shape of the given array and the table array (slice) are not equal.

Static Private Member Functions

static void getVecBoolV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
 Get a (type-dependent) vector part of a slice.
static void getVecuCharV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecShortV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecuShortV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecIntV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecuIntV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecfloatV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecdoubleV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecComplexV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecDComplexV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void getVecStringV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, void *value)
static void putVecBoolV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
 Put a (type-dependent) vector part of a slice.
static void putVecuCharV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecShortV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecuShortV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecIntV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecuIntV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecfloatV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecdoubleV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecComplexV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecDComplexV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)
static void putVecStringV (StManArrayFile &, Int64 fileOffset, uInt arrayStart, uInt length, uInt increment, uInt valueIndex, const void *value)

Private Attributes

Int64 fileOffset_p
 
     

uInt arrOffset_p
IPosition shape_p

Detailed Description

Read/write indirect arrays.

Intended use:

Internal

Review Status

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

Prerequisite

Etymology

StIndArray stores indirect arrays on behalf of a storage manager.

Synopsis

StIndArray is a helper class for accessing indirect table arrays. It is the interface between a storage manager like StManAipsIO (in particular its indirect array column class

StManColumnIndArrayAipsIO ) and the data storage class StManArrayFile which represents the file holding the shapes and data of the arrays. This file holds the data in canonical format.

StIndArray holds information about an array in the file.

  1. Offset of the array in the file. This points to the array shape. This is stored by storage managers and serves as the mapping between row number and array.
  2. Array data offset, i.e. the length of the shape in the file. Because the data is stored in canonical format, the length of the shape in the file is not directly known but has to be supplied this way.
  3. The actual shape of the array

The storage manager creates an StIndArray object for each row. When an array is accessed for the first time, the array data offset and the shape will be filled in by StIndArray. In this way it serves as a cache for the array shape.

StIndArray implements all necessary functions to get/put an array or an array slice from/into file supplied by the given StManArrayFile object. The StManArrayFile object itself has to be created by the storage manager and given to the StIndArray functions.

Motivation

This helper class makes it possible to share equal functionality between various storage managers handling indirect arrays. At the moment it is used by StmanColumnIndArrayAipsIO and StManColumnIndArrayMirAIO (the AipsIO and Miriad-like storage manager, resp.), but it is not limited to them. It can equally well be used for any other storage manager storing (indirect) arrays via an StManArrayFile object.

Example

Note that the following example is not really useful. StIndArray is an internal class and should not be used by a casual user. The example may however give a bit of insight.

    Array<Float> array(...);
    // Create an StManArrayFile object to hold the arrays.
    StManArrayFile stmanFile ("some.name", ByteIO::New);
    // Create a still empty StIndArray object for an array.
    StIndArray arrayRef(0);
    // Define the shape and allocate a Float array.
    // Put the array data.
    arrayRef.setShape (stmanFile, TpFloat, array.shape());
    arrayRef.putArrayfloatV (stmanFile, &array);
    // Get the file offset of the array (for later use).
    Int64 offset = arrayRef.fileOffset();
    // Create an StIndArray object to read the array back.
    // Of course, the same object could have been used for that purpose,
    // but this shows how to create one for an existing file.
    StIndArray arrayRef2(offset);
    arrayRef2.getShape (stmanFile);             // read shape
    Array<float> array2(arrayRef2.shape());     // create with correct size
    arrayRef2.getArrayfloatV (stmanFile, &array2);

To Do

Definition at line 141 of file StIndArray.h.


Constructor & Destructor Documentation

Construct the object with the given file offset.

A zero file offset means that no array has been defined yet. That may be filled in later by setShape.

Copy constructor.


Member Function Documentation

void casa::StIndArray::checkShape ( const IPosition userArrayShape,
const IPosition tableArrayShape 
) const [private]

Throw an exception if the shape of the given array and the table array (slice) are not equal.

void casa::StIndArray::copyData ( StManArrayFile ios,
int  dataType,
const StIndArray other 
)

Copy the data from another array.

An exception if thrown if the shapes do not match.

Decrement the reference count.

Int64 casa::StIndArray::fileOffset ( ) const [inline]

Get the file offset.

Definition at line 162 of file StIndArray.h.

References fileOffset_p.

void casa::StIndArray::getArrayBoolV ( StManArrayFile ,
Array< Bool > *  dataPtr 
)

Get an array value from the file at the offset held in this object.

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

void casa::StIndArray::getArrayComplexV ( StManArrayFile ,
Array< Complex > *  dataPtr 
)
void casa::StIndArray::getArrayDComplexV ( StManArrayFile ,
Array< DComplex > *  dataPtr 
)
void casa::StIndArray::getArraydoubleV ( StManArrayFile ,
Array< double > *  dataPtr 
)
void casa::StIndArray::getArrayfloatV ( StManArrayFile ,
Array< float > *  dataPtr 
)
void casa::StIndArray::getArrayIntV ( StManArrayFile ,
Array< Int > *  dataPtr 
)
void casa::StIndArray::getArrayuIntV ( StManArrayFile ,
Array< uInt > *  dataPtr 
)

Read the shape if not read yet.

void casa::StIndArray::getSliceBoolV ( StManArrayFile ,
const Slicer ,
Array< Bool > *  dataPtr 
)

Get a section of the array from the file at the offset held in this object.

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

void casa::StIndArray::getSliceComplexV ( StManArrayFile ,
const Slicer ,
Array< Complex > *  dataPtr 
)
void casa::StIndArray::getSliceData ( StManArrayFile ,
const Slicer ns,
void *  value,
const IPosition userArrayShape,
void(*)(StManArrayFile &, Int64, uInt, uInt, uInt, uInt, void *dataPtr)  getVec 
) [private]

Get sliced data, i.e.

get a section of an array. This function is used by getSliceXXXV to have common functionality in one function. It calls the given getVec function for each chunk of data. In this way the bulk of type-independent code is concentrated in getSliceData resulting in small type-dependent functions.

void casa::StIndArray::getSliceDComplexV ( StManArrayFile ,
const Slicer ,
Array< DComplex > *  dataPtr 
)
void casa::StIndArray::getSlicedoubleV ( StManArrayFile ,
const Slicer ,
Array< double > *  dataPtr 
)
void casa::StIndArray::getSlicefloatV ( StManArrayFile ,
const Slicer ,
Array< float > *  dataPtr 
)
void casa::StIndArray::getSliceIntV ( StManArrayFile ,
const Slicer ,
Array< Int > *  dataPtr 
)
void casa::StIndArray::getSliceShortV ( StManArrayFile ,
const Slicer ,
Array< Short > *  dataPtr 
)
void casa::StIndArray::getSliceStringV ( StManArrayFile ,
const Slicer ,
Array< String > *  dataPtr 
)
void casa::StIndArray::getSliceuCharV ( StManArrayFile ,
const Slicer ,
Array< uChar > *  dataPtr 
)
void casa::StIndArray::getSliceuIntV ( StManArrayFile ,
const Slicer ,
Array< uInt > *  dataPtr 
)
void casa::StIndArray::getSliceuShortV ( StManArrayFile ,
const Slicer ,
Array< uShort > *  dataPtr 
)
static void casa::StIndArray::getVecBoolV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]

Get a (type-dependent) vector part of a slice.

This function is called for each chunk by putSliceData.

static void casa::StIndArray::getVecComplexV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecDComplexV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecdoubleV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecfloatV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecIntV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecShortV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecStringV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecuCharV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecuIntV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]
static void casa::StIndArray::getVecuShortV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
void *  value 
) [static, private]

Increment the reference count.

StIndArray& casa::StIndArray::operator= ( const StIndArray )

Assignment.

void casa::StIndArray::putArrayBoolV ( StManArrayFile ,
const Array< Bool > *  dataPtr 
)

Put an array value into the file at the offset held in this object.

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

void casa::StIndArray::putArrayComplexV ( StManArrayFile ,
const Array< Complex > *  dataPtr 
)
void casa::StIndArray::putArrayDComplexV ( StManArrayFile ,
const Array< DComplex > *  dataPtr 
)
void casa::StIndArray::putArraydoubleV ( StManArrayFile ,
const Array< double > *  dataPtr 
)
void casa::StIndArray::putArrayfloatV ( StManArrayFile ,
const Array< float > *  dataPtr 
)
void casa::StIndArray::putArrayIntV ( StManArrayFile ,
const Array< Int > *  dataPtr 
)
void casa::StIndArray::putArrayShortV ( StManArrayFile ,
const Array< Short > *  dataPtr 
)
void casa::StIndArray::putArrayStringV ( StManArrayFile ,
const Array< String > *  dataPtr 
)
void casa::StIndArray::putArrayuCharV ( StManArrayFile ,
const Array< uChar > *  dataPtr 
)
void casa::StIndArray::putArrayuIntV ( StManArrayFile ,
const Array< uInt > *  dataPtr 
)
void casa::StIndArray::putArrayuShortV ( StManArrayFile ,
const Array< uShort > *  dataPtr 
)
void casa::StIndArray::putSliceBoolV ( StManArrayFile ,
const Slicer ,
const Array< Bool > *  dataPtr 
)

Put a section of the array into the file at the offset held in this object.

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

void casa::StIndArray::putSliceComplexV ( StManArrayFile ,
const Slicer ,
const Array< Complex > *  dataPtr 
)
void casa::StIndArray::putSliceData ( StManArrayFile ,
const Slicer ns,
const void *  value,
const IPosition userArrayShape,
void(*)(StManArrayFile &, Int64, uInt, uInt, uInt, uInt, const void *dataPtr)  putVec 
) [private]

Put sliced data, i.e.

put a section of an array. This function is used by putSlice to have common functionality in one function. It calls the given in putVec function for chunk of data. In this way the bulk of type-independent code is concentrated in putSliceData resulting in small type-dependent functions.

void casa::StIndArray::putSliceDComplexV ( StManArrayFile ,
const Slicer ,
const Array< DComplex > *  dataPtr 
)
void casa::StIndArray::putSlicedoubleV ( StManArrayFile ,
const Slicer ,
const Array< double > *  dataPtr 
)
void casa::StIndArray::putSlicefloatV ( StManArrayFile ,
const Slicer ,
const Array< float > *  dataPtr 
)
void casa::StIndArray::putSliceIntV ( StManArrayFile ,
const Slicer ,
const Array< Int > *  dataPtr 
)
void casa::StIndArray::putSliceShortV ( StManArrayFile ,
const Slicer ,
const Array< Short > *  dataPtr 
)
void casa::StIndArray::putSliceStringV ( StManArrayFile ,
const Slicer ,
const Array< String > *  dataPtr 
)
void casa::StIndArray::putSliceuCharV ( StManArrayFile ,
const Slicer ,
const Array< uChar > *  dataPtr 
)
void casa::StIndArray::putSliceuIntV ( StManArrayFile ,
const Slicer ,
const Array< uInt > *  dataPtr 
)
void casa::StIndArray::putSliceuShortV ( StManArrayFile ,
const Slicer ,
const Array< uShort > *  dataPtr 
)
static void casa::StIndArray::putVecBoolV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]

Put a (type-dependent) vector part of a slice.

This function is called for each chunk by putSliceData.

static void casa::StIndArray::putVecComplexV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecDComplexV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecdoubleV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecfloatV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecIntV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecShortV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecStringV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecuCharV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecuIntV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]
static void casa::StIndArray::putVecuShortV ( StManArrayFile ,
Int64  fileOffset,
uInt  arrayStart,
uInt  length,
uInt  increment,
uInt  valueIndex,
const void *  value 
) [static, private]

Get the reference count.

Bool casa::StIndArray::setShape ( StManArrayFile ,
int  dataType,
const IPosition shape 
)

Set the shape and allocate the array in the file.

This will define the array and fill in the file offset. If the shape is already defined and does not change, nothing is done and a False value is returned. When the shape changes, the old file space is lost.

const IPosition& casa::StIndArray::shape ( ) const [inline]

Get the shape.

Definition at line 158 of file StIndArray.h.

References shape_p.


Member Data Documentation

Definition at line 282 of file StIndArray.h.

     

Definition at line 281 of file StIndArray.h.

Referenced by fileOffset().

Definition at line 284 of file StIndArray.h.

Referenced by shape().


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