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

#include <MSTableIndex.h>

Inheritance diagram for casa::MSTableIndex:
casa::MSDopplerIndex casa::MSFeedIndex casa::MSFreqOffIndex casa::MSPointingIndex casa::MSSourceIndex casa::MSSysCalIndex casa::MSWeatherIndex

List of all members.

Public Member Functions

 MSTableIndex ()
 no index attached, use the attach function or assignment operator to change that
 MSTableIndex (const Table &subTable, const Vector< String > &indexCols, ColumnsIndex::Compare *compareFunction=0)
 construct one using the indicated subtable which is part of the parent MS using the indicated index columns.
 MSTableIndex (const MSTableIndex &other)
 construct one from another
virtual ~MSTableIndex ()
MSTableIndexoperator= (const MSTableIndex &other)
 assignment operator, refernce semantics
void attach (const Table &subTable, const Vector< String > &indexCols, ColumnsIndex::Compare *compareFunction=0)
 attach this to a subtable using indexCols
virtual void setChanged ()
 Call this when an index in an existing row has changed.
virtual RecordaccessKey ()
 access the record of index (integer) keys
virtual Doubletime ()
 access the TIME to use in the search (seconds)
virtual Doubleinterval ()
 access the INTERVAL to use in the search (seconds), must be >= 0
virtual Vector< uIntgetRowNumbers ()
 get all of the rows in the subTable which have data during the indicated time and interval values.
virtual uInt getNearestRow (Bool &found)
 get the row number which falls in the interval and has the time nearest to the center of the interval (time()).
virtual Bool isNull ()
 is this attached to a null table
virtual Tabletable ()
 return the subtable being indexed

Private Member Functions

void clear ()
void makeKeys ()
Bool keysChanged ()
void getInternals ()
void nearestTime ()

Private Attributes

Table tab_p
 the subtable
ROScalarColumn< DoubletimeColumn_p
ROScalarColumn< DoubleintervalColumn_p
Vector< DoubletimeVec_p
Vector< DoubleintervalVec_p
const DoubletimeVals_p
const DoubleintervalVals_p
Bool deleteItTime_p
Bool deleteItInterval_p
Recordkey_p
 Internal keys - set by user.
Block< RecordFieldPtr< Int > > intKeys_p
Double time_p
Double interval_p
Vector< IntlastKeys_p
 last known integer key values
Double lastTime_p
 last known time and interval
Double lastInterval_p
Vector< uIntlastSearch_p
 last search result - matching integer keys
Int lastNearest_p
 last nearest
Bool nearestFound_p
Bool nearestReady_p
uInt nrows_p
 last known sub-table size
Bool hasChanged_p
ColumnsIndexindex_p
Block< RecordFieldPtr< Int > > indexKeys_p
Bool hasTime_p
Bool hasInterval_p

Detailed Description

Intended use:

Public interface

 <h3>Review Status</h3><dl><dt>Date Reviewed:<dd>yyyy/mm/dd</dl> 

Prerequisite

Etymology

Synopsis

Example

Motivation

Thrown Exceptions

To Do

Definition at line 81 of file MSTableIndex.h.


Constructor & Destructor Documentation

no index attached, use the attach function or assignment operator to change that

casa::MSTableIndex::MSTableIndex ( const Table subTable,
const Vector< String > &  indexCols,
ColumnsIndex::Compare compareFunction = 0 
)

construct one using the indicated subtable which is part of the parent MS using the indicated index columns.

All index columns must be scalar integer columns. TIME and INTERVAL will be used when present. A compare function can be provided to over-ride literal matching of column values.

construct one from another

virtual casa::MSTableIndex::~MSTableIndex ( ) [virtual]

Member Function Documentation

virtual Record& casa::MSTableIndex::accessKey ( ) [inline, virtual]

access the record of index (integer) keys

Definition at line 111 of file MSTableIndex.h.

References key_p.

void casa::MSTableIndex::attach ( const Table subTable,
const Vector< String > &  indexCols,
ColumnsIndex::Compare compareFunction = 0 
)

attach this to a subtable using indexCols

void casa::MSTableIndex::clear ( ) [private]
virtual uInt casa::MSTableIndex::getNearestRow ( Bool found) [virtual]

get the row number which falls in the interval and has the time nearest to the center of the interval (time()).

This also has the same problem as the previous function.

get all of the rows in the subTable which have data during the indicated time and interval values.

For now, this code will miss the case where the subtable has interval = -1 and the start time is outside of the time range implied by the time and interval. If the table has changed and the time is >

virtual Double& casa::MSTableIndex::interval ( ) [inline, virtual]

access the INTERVAL to use in the search (seconds), must be >= 0

Definition at line 117 of file MSTableIndex.h.

References interval_p.

virtual Bool casa::MSTableIndex::isNull ( ) [inline, virtual]

is this attached to a null table

Definition at line 130 of file MSTableIndex.h.

References casa::Table::isNull(), and tab_p.

void casa::MSTableIndex::makeKeys ( ) [private]
void casa::MSTableIndex::nearestTime ( ) [private]
MSTableIndex& casa::MSTableIndex::operator= ( const MSTableIndex other)

assignment operator, refernce semantics

virtual void casa::MSTableIndex::setChanged ( ) [virtual]

Call this when an index in an existing row has changed.

There is no need to call this when new rows are added to the table

virtual Table& casa::MSTableIndex::table ( ) [inline, virtual]

return the subtable being indexed

Definition at line 133 of file MSTableIndex.h.

References tab_p.

virtual Double& casa::MSTableIndex::time ( ) [inline, virtual]

access the TIME to use in the search (seconds)

Definition at line 114 of file MSTableIndex.h.

References time_p.


Member Data Documentation

Definition at line 141 of file MSTableIndex.h.

Definition at line 141 of file MSTableIndex.h.

Definition at line 163 of file MSTableIndex.h.

Definition at line 167 of file MSTableIndex.h.

Definition at line 167 of file MSTableIndex.h.

Definition at line 165 of file MSTableIndex.h.

Definition at line 166 of file MSTableIndex.h.

Definition at line 146 of file MSTableIndex.h.

Referenced by interval().

Definition at line 138 of file MSTableIndex.h.

Definition at line 140 of file MSTableIndex.h.

Definition at line 139 of file MSTableIndex.h.

Definition at line 145 of file MSTableIndex.h.

Internal keys - set by user.

Definition at line 144 of file MSTableIndex.h.

Referenced by accessKey().

Definition at line 151 of file MSTableIndex.h.

last known integer key values

Definition at line 149 of file MSTableIndex.h.

last nearest

Definition at line 157 of file MSTableIndex.h.

last search result - matching integer keys

Definition at line 154 of file MSTableIndex.h.

last known time and interval

Definition at line 151 of file MSTableIndex.h.

Definition at line 158 of file MSTableIndex.h.

Definition at line 158 of file MSTableIndex.h.

last known sub-table size

Definition at line 161 of file MSTableIndex.h.

the subtable

Definition at line 136 of file MSTableIndex.h.

Referenced by isNull(), and table().

Definition at line 146 of file MSTableIndex.h.

Referenced by time().

Definition at line 138 of file MSTableIndex.h.

Definition at line 140 of file MSTableIndex.h.

Definition at line 139 of file MSTableIndex.h.


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