casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::MSTableIndex Class Reference

#include <MSTableIndex.h>

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

Public Member Functions

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

Private Member Functions

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

Private Attributes

Table tab_p
 the subtable More...
 
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. More...
 
Block< RecordFieldPtr< Int > > intKeys_p
 
Double time_p
 
Double interval_p
 
Vector< IntlastKeys_p
 last known integer key values More...
 
Double lastTime_p
 last known time and interval More...
 
Double lastInterval_p
 
Vector< uIntlastSearch_p
 last search result - matching integer keys More...
 
Int lastNearest_p
 last nearest More...
 
Bool nearestFound_p
 
Bool nearestReady_p
 
uInt nrows_p
 last known sub-table size More...
 
Bool hasChanged_p
 
ColumnsIndexindex_p
 
Block< RecordFieldPtr< Int > > indexKeys_p
 
Bool hasTime_p
 
Bool hasInterval_p
 

Detailed Description

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

Synopsis

Example

Motivation

Thrown Exceptions

To Do

Definition at line 82 of file MSTableIndex.h.

Constructor & Destructor Documentation

casacore::MSTableIndex::MSTableIndex ( )

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

casacore::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.

casacore::MSTableIndex::MSTableIndex ( const MSTableIndex other)

construct one from another

virtual casacore::MSTableIndex::~MSTableIndex ( )
virtual

Member Function Documentation

virtual Record& casacore::MSTableIndex::accessKey ( )
inlinevirtual

access the record of index (integer) keys

Definition at line 112 of file MSTableIndex.h.

References key_p.

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

attach this to a subtable using indexCols

void casacore::MSTableIndex::clear ( )
private
void casacore::MSTableIndex::getInternals ( )
private
virtual uInt casacore::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.

virtual Vector<uInt> casacore::MSTableIndex::getRowNumbers ( )
virtual

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& casacore::MSTableIndex::interval ( )
inlinevirtual

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

Definition at line 118 of file MSTableIndex.h.

References interval_p.

virtual Bool casacore::MSTableIndex::isNull ( )
inlinevirtual

is this attached to a null table

Definition at line 131 of file MSTableIndex.h.

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

Bool casacore::MSTableIndex::keysChanged ( )
private
void casacore::MSTableIndex::makeKeys ( )
private
void casacore::MSTableIndex::nearestTime ( )
private
MSTableIndex& casacore::MSTableIndex::operator= ( const MSTableIndex other)

assignment operator, refernce semantics

virtual void casacore::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& casacore::MSTableIndex::table ( )
inlinevirtual

return the subtable being indexed

Definition at line 134 of file MSTableIndex.h.

References tab_p.

virtual Double& casacore::MSTableIndex::time ( void  )
inlinevirtual

access the TIME to use in the search (seconds)

Definition at line 115 of file MSTableIndex.h.

References time_p.

Member Data Documentation

Bool casacore::MSTableIndex::deleteItInterval_p
private

Definition at line 142 of file MSTableIndex.h.

Bool casacore::MSTableIndex::deleteItTime_p
private

Definition at line 142 of file MSTableIndex.h.

Bool casacore::MSTableIndex::hasChanged_p
private

Definition at line 164 of file MSTableIndex.h.

Bool casacore::MSTableIndex::hasInterval_p
private

Definition at line 168 of file MSTableIndex.h.

Bool casacore::MSTableIndex::hasTime_p
private

Definition at line 168 of file MSTableIndex.h.

ColumnsIndex* casacore::MSTableIndex::index_p
private

Definition at line 166 of file MSTableIndex.h.

Block<RecordFieldPtr<Int> > casacore::MSTableIndex::indexKeys_p
private

Definition at line 167 of file MSTableIndex.h.

Double casacore::MSTableIndex::interval_p
private

Definition at line 147 of file MSTableIndex.h.

Referenced by interval().

ROScalarColumn<Double> casacore::MSTableIndex::intervalColumn_p
private

Definition at line 139 of file MSTableIndex.h.

const Double * casacore::MSTableIndex::intervalVals_p
private

Definition at line 141 of file MSTableIndex.h.

Vector<Double> casacore::MSTableIndex::intervalVec_p
private

Definition at line 140 of file MSTableIndex.h.

Block<RecordFieldPtr<Int> > casacore::MSTableIndex::intKeys_p
private

Definition at line 146 of file MSTableIndex.h.

Record* casacore::MSTableIndex::key_p
private

Internal keys - set by user.

Definition at line 145 of file MSTableIndex.h.

Referenced by accessKey().

Double casacore::MSTableIndex::lastInterval_p
private

Definition at line 152 of file MSTableIndex.h.

Vector<Int> casacore::MSTableIndex::lastKeys_p
private

last known integer key values

Definition at line 150 of file MSTableIndex.h.

Int casacore::MSTableIndex::lastNearest_p
private

last nearest

Definition at line 158 of file MSTableIndex.h.

Vector<uInt> casacore::MSTableIndex::lastSearch_p
private

last search result - matching integer keys

Definition at line 155 of file MSTableIndex.h.

Double casacore::MSTableIndex::lastTime_p
private

last known time and interval

Definition at line 152 of file MSTableIndex.h.

Bool casacore::MSTableIndex::nearestFound_p
private

Definition at line 159 of file MSTableIndex.h.

Bool casacore::MSTableIndex::nearestReady_p
private

Definition at line 159 of file MSTableIndex.h.

uInt casacore::MSTableIndex::nrows_p
private

last known sub-table size

Definition at line 162 of file MSTableIndex.h.

Table casacore::MSTableIndex::tab_p
private

the subtable

Definition at line 137 of file MSTableIndex.h.

Referenced by isNull(), and table().

Double casacore::MSTableIndex::time_p
private

Definition at line 147 of file MSTableIndex.h.

Referenced by time().

ROScalarColumn<Double> casacore::MSTableIndex::timeColumn_p
private

Definition at line 139 of file MSTableIndex.h.

const Double* casacore::MSTableIndex::timeVals_p
private

Definition at line 141 of file MSTableIndex.h.

Vector<Double> casacore::MSTableIndex::timeVec_p
private

Definition at line 140 of file MSTableIndex.h.


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