LatticeRegion.h

Classes

LatticeRegion -- An optionally strided region in a Lattice (full description)

class LatticeRegion: public Lattice<Bool>

Interface

Public Members
LatticeRegion()
LatticeRegion (const LCRegion& region)
LatticeRegion (LCRegion* region)
LatticeRegion (const Slicer& slicer, const IPosition& latticeShape)
LatticeRegion (const LatticeRegion& other)
virtual ~LatticeRegion()
LatticeRegion& operator= (const LatticeRegion& other)
virtual Lattice<Bool>* clone() const
virtual Bool isWritable() const
Bool hasMask() const
virtual Bool lock (FileLocker::LockType, uInt nattempts)
virtual void unlock()
virtual Bool hasLock (FileLocker::LockType) const
virtual void resync()
virtual void flush()
virtual void tempClose()
virtual void reopen()
const LCRegion& region() const
const Slicer& slicer() const
virtual IPosition shape() const
virtual uInt ndim() const
virtual uInt nelements() const
virtual Bool ok() const
virtual LatticeIterInterface<Bool>* makeIter (const LatticeNavigator& navigator, Bool useRef) const
virtual uInt advisedMaxPixels() const
virtual IPosition doNiceCursorShape (uInt maxPixels) const
virtual uInt maximumCacheSize() const
virtual void setMaximumCacheSize (uInt howManyPixels)
virtual void setCacheSizeFromPath (const IPosition& sliceShape, const IPosition& windowStart, const IPosition& windowLength, const IPosition& axisPath)
virtual void setCacheSizeInTiles (uInt howManyTiles)
virtual void clearCache()
virtual void showCacheStatistics (ostream& os) const
virtual void set (const Bool& value)
virtual void apply (Bool (*function)(Bool))
virtual void apply (Bool (*function)(const Bool&))
virtual void apply (const Functional<Bool,Bool>& function)
virtual void putAt (const Bool& value, const IPosition& where)
virtual void copyData (const Lattice<Bool>& from)
Slicer convert (const Slicer& slicer) const
IPosition convert (const IPosition& position) const
virtual Bool doGetSlice (Array<Bool>& buffer, const Slicer& section)
virtual void doPutSlice (const Array<Bool>& sourceBuffer, const IPosition& where, const IPosition& stride)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Synopsis

A LatticeRegion is a lattice referencing a subset of another lattice by means of a Slicer object.
It is useful when only a subset of a lattice needs to be accessed.

When the LatticeRegion is created from a const Lattice object, it is not writable, thus it can only be used as an rvalue.

Example


 

Member Description

LatticeRegion()

The default constructor creates a LatticeRegion that is useless for just about everything, except that it can be assigned to with the assignment operator.

LatticeRegion (const LCRegion& region)

Create from the given region. The pointer to the parent can be 0.

LatticeRegion (LCRegion* region)

Create from the given region and take over the pointer. This means the user should not delete the region object pointed to, because it will be deleted by the LatticeRegion destructor. The pointer to the parent is set to 0.

LatticeRegion (const Slicer& slicer, const IPosition& latticeShape)

Construct from the given slicer. The lattice shape has to be the lattice shape of the lattice where the region is taken from.

LatticeRegion (const LatticeRegion& other)

Copy constructor (reference semantics).

virtual ~LatticeRegion()

LatticeRegion& operator= (const LatticeRegion& other)

Assignment (reference semantics).

virtual Lattice<Bool>* clone() const

Make a copy of the object (reference semantics).

virtual Bool isWritable() const

Is the LatticeRegion writable?

Bool hasMask() const

Has the region a mask?

virtual Bool lock (FileLocker::LockType, uInt nattempts)
virtual void unlock()
virtual Bool hasLock (FileLocker::LockType) const

Handle the (un)locking.

virtual void resync()

Resynchronize the PagedArray object with the lattice file. This function is only useful if no read-locking is used, ie. if the table lock option is UserNoReadLocking or AutoNoReadLocking. In that cases the table system does not acquire a read-lock, thus does not synchronize itself automatically.

virtual void flush()

Flush the data (but do not unlock).

virtual void tempClose()

Temporarily close the lattice. It will be reopened automatically on the next access.

virtual void reopen()

Explicitly reopen the temporarily closed lattice.

const LCRegion& region() const

Get the LCRegion object describing the region. Note that it does not contain strides, even if this LatticeRegion object was constructed from a Slicer with strides. In that case the region only defines the resulting shape.

const Slicer& slicer() const

Get the Slicer object describing the region. Note that it may contain strides.

virtual IPosition shape() const

Returns the shape of the LatticeRegion including all degenerate axes (i.e. axes with a length of one).

virtual uInt ndim() const

Returns the number of axes in this LatticeRegion. This includes all degenerate axes.

virtual uInt nelements() const

Returns the total number of elements in this LatticeRegion.

virtual Bool ok() const

Check class internals - used for debugging. Should always return True

virtual LatticeIterInterface<Bool>* makeIter (const LatticeNavigator& navigator, Bool useRef) const

This function is used by the LatticeIterator class to generate an iterator of the correct type for this Lattice. Not recommended for general use.

virtual uInt advisedMaxPixels() const

Returns the maximum recommended number of pixels for a cursor. This is the number of pixels in a tile.

virtual IPosition doNiceCursorShape (uInt maxPixels) const

Help the user pick a cursor for most efficient access.

virtual uInt maximumCacheSize() const

Maximum size - not necessarily all used. In pixels.

virtual void setMaximumCacheSize (uInt howManyPixels)

Set the maximum (allowed) cache size as indicated.

virtual void setCacheSizeFromPath (const IPosition& sliceShape, const IPosition& windowStart, const IPosition& windowLength, const IPosition& axisPath)

Set the cache size as to "fit" the indicated path.

virtual void setCacheSizeInTiles (uInt howManyTiles)

Set the actual cache size for this Array to be be big enough for the indicated number of tiles. This cache is not shared with PagedArrays in other rows and is always clipped to be less than the maximum value set using the setMaximumCacheSize member function. tiles. Tiles are cached using a first in first out algorithm.

virtual void clearCache()

Clears and frees up the caches, but the maximum allowed cache size is unchanged from when setCacheSize was called

virtual void showCacheStatistics (ostream& os) const

Report on cache success.

virtual void set (const Bool& value)
virtual void apply (Bool (*function)(Bool))
virtual void apply (Bool (*function)(const Bool&))
virtual void apply (const Functional<Bool,Bool>& function)
virtual void putAt (const Bool& value, const IPosition& where)
virtual void copyData (const Lattice<Bool>& from)

The following "put" functions are described in detail in class Lattice. They'll throw an exception is no mask is available or if the mask is not writable.

Slicer convert (const Slicer& slicer) const
IPosition convert (const IPosition& position) const

Convert positions to positions in the parent object.

virtual Bool doGetSlice (Array<Bool>& buffer, const Slicer& section)

Do the actual getting of the mask.

virtual void doPutSlice (const Array<Bool>& sourceBuffer, const IPosition& where, const IPosition& stride)

Do the actual putting of the mask. Only possible if region is writable.