|
Bool | validate () const |
| validate self (make sure that this MS is valid) More...
|
|
| Table () |
| Create a null Table object (i.e. More...
|
|
| Table (const String &tableName, TableOption=Table::Old, const TSMOption &=TSMOption()) |
| Create a table object for an existing table. More...
|
|
| Table (const String &tableName, const TableLock &lockOptions, TableOption=Table::Old, const TSMOption &=TSMOption()) |
|
| Table (const String &tableName, const String &tableDescName, TableOption=Table::Old, const TSMOption &=TSMOption()) |
|
| Table (const String &tableName, const String &tableDescName, const TableLock &lockOptions, TableOption=Table::Old, const TSMOption &=TSMOption()) |
|
| Table (TableType, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
| Make a new empty table (plain (scratch) or memory type). More...
|
|
| Table (SetupNewTable &, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
| Make a table object for a new table, which can thereafter be used for reading and writing. More...
|
|
| Table (SetupNewTable &, TableType, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (SetupNewTable &, TableType, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (SetupNewTable &, TableLock::LockOption, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (SetupNewTable &, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, TableType, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, SetupNewTable &, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, SetupNewTable &, TableType, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, SetupNewTable &, TableType, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, SetupNewTable &, TableLock::LockOption, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (MPI_Comm mpiComm, SetupNewTable &, const TableLock &lockOptions, rownr_t nrrow=0, Bool initialize=False, EndianFormat=Table::AipsrcEndian, const TSMOption &=TSMOption()) |
|
| Table (const Block< Table > &tables, const Block< String > &subTables=Block< String >(), const String &subDirName=String()) |
| Create a table object as the virtual concatenation of one or more of existing tables. More...
|
|
| Table (const Block< String > &tableNames, const Block< String > &subTables=Block< String >(), TableOption=Table::Old, const TSMOption &=TSMOption(), const String &subDirName=String()) |
|
| Table (const Block< String > &tableNames, const Block< String > &subTables, const TableLock &lockOptions, TableOption=Table::Old, const TSMOption &=TSMOption()) |
|
| Table (const Table &) |
| Copy constructor (reference semantics). More...
|
|
virtual | ~Table () |
| The destructor flushes (i.e. More...
|
|
Table & | operator= (const Table &) |
| Assignment (reference semantics). More...
|
|
Block< String > | getPartNames (Bool recursive=False) const |
| Get the names of the tables this table consists of. More...
|
|
Bool | isSameRoot (const Table &other) const |
| Is the root table of this table the same as that of the other one? More...
|
|
void | closeSubTables () const |
| Close all open subtables. More...
|
|
void | reopenRW () |
| Try to reopen the table for read/write access. More...
|
|
Table::EndianFormat | endianFormat () const |
| Get the endian format in which the table is stored. More...
|
|
const StorageOption & | storageOption () const |
| Get the storage option used for the table. More...
|
|
Bool | isMultiUsed (Bool checkSubTables=False) const |
| Is the table used (i.e. More...
|
|
const TableLock & | lockOptions () const |
| Get the locking options. More...
|
|
Bool | hasLock (FileLocker::LockType=FileLocker::Write) const |
| Has this process the read or write lock, thus can the table be read or written safely? More...
|
|
Bool | hasLock (Bool write) const |
|
Bool | lock (FileLocker::LockType=FileLocker::Write, uInt nattempts=0) |
| Try to lock the table for read or write access (default is write). More...
|
|
Bool | lock (Bool write, uInt nattempts=0) |
|
void | unlock () |
| Unlock the table. More...
|
|
Bool | hasDataChanged () |
| Determine if column or keyword table data have changed (or is being changed) since the last time this function was called. More...
|
|
void | flush (Bool fsync=False, Bool recursive=False) |
| Flush the table, i.e. More...
|
|
void | resync () |
| Resynchronize the Table object with the table file. More...
|
|
Bool | isNull () const |
| Test if the object is null, i.e. More...
|
|
void | throwIfNull () const |
| Throw an exception if the object is null, i.e. More...
|
|
void | showStructure (std::ostream &, Bool showDataMans=True, Bool showColumns=True, Bool showSubTables=False, Bool sortColumns=False, Bool cOrder=False) const |
| Show the structure of the table. More...
|
|
void | showKeywords (std::ostream &, Bool showSubTables=False, Bool showTabKey=True, Bool showColKey=False, Int maxVal=25) const |
| Show the table and/or column keywords, possibly also of all subtables. More...
|
|
void | showKeywordSets (std::ostream &, Bool showTabKey, Bool showColKey, Int maxVal) const |
| Show the table and/or column keywords of this table. More...
|
|
Bool | isRootTable () const |
| Test if this table is the root table (ie. More...
|
|
Bool | isWritable () const |
| Test if this table is opened as writable. More...
|
|
Bool | isColumnWritable (const String &columnName) const |
| Test if the given column is writable. More...
|
|
Bool | isColumnWritable (uInt columnIndex) const |
|
Bool | isColumnStored (const String &columnName) const |
| Test if the given column is stored (otherwise it is virtual). More...
|
|
Bool | isColumnStored (uInt columnIndex) const |
|
const TableRecord & | keywordSet () const |
| Get readonly access to the table keyword set. More...
|
|
TableRecord & | rwKeywordSet () |
| Get read/write access to the table keyword set. More...
|
|
const TableInfo & | tableInfo () const |
| Get access to the TableInfo object. More...
|
|
TableInfo & | tableInfo () |
|
void | flushTableInfo () const |
| Write the TableInfo object. More...
|
|
const TableDesc & | tableDesc () const |
| Get the table description. More...
|
|
TableDesc | actualTableDesc () const |
|
Record | dataManagerInfo () const |
| Return all data managers used and the columns served by them. More...
|
|
const String & | tableName () const |
| Get the table name. More...
|
|
void | rename (const String &newName, TableOption) |
| Rename the table and all its subtables. More...
|
|
void | copy (const String &newName, TableOption, Bool noRows=False) const |
| Copy the table and all its subtables. More...
|
|
void | deepCopy (const String &newName, TableOption, Bool valueCopy=False, EndianFormat=AipsrcEndian, Bool noRows=False) const |
|
void | deepCopy (const String &newName, const Record &dataManagerInfo, TableOption, Bool valueCopy=False, EndianFormat=AipsrcEndian, Bool noRows=False) const |
|
void | deepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, TableOption, Bool valueCopy=False, EndianFormat=AipsrcEndian, Bool noRows=False) const |
|
Table | copyToMemoryTable (const String &name, Bool noRows=False) const |
| Make a copy of a table to a MemoryTable object. More...
|
|
TableType | tableType () const |
| Get the table type. More...
|
|
int | tableOption () const |
| Get the table option. More...
|
|
void | markForDelete () |
| Mark the table for delete. More...
|
|
void | unmarkForDelete () |
| Unmark the table for delete. More...
|
|
Bool | isMarkedForDelete () const |
| Test if the table is marked for delete. More...
|
|
rownr_t | nrow () const |
| Get the number of rows. More...
|
|
Bool | canAddRow () const |
| Test if it is possible to add a row to this table. More...
|
|
void | addRow (rownr_t nrrow=1, Bool initialize=False) |
| Add one or more rows at the end of the table. More...
|
|
Bool | canRemoveRow () const |
| Test if it is possible to remove a row from this table. More...
|
|
void | removeRow (rownr_t rownr) |
| Remove the given row(s). More...
|
|
void | removeRow (const RowNumbers &rownrs) |
|
TableExprNode | nodeRownr (rownr_t origin=0) const |
| Create a TableExprNode object for the rownumber function. More...
|
|
TableExprNode | nodeRandom () const |
| Create a TableExprNode object for the rand function. More...
|
|
Table | operator() (const TableExprNode &, rownr_t maxRow=0, rownr_t offset=0) const |
| Select rows from a table using an select expression consisting of TableExprNode objects. More...
|
|
Table | operator() (const RowNumbers &rownrs) const |
| Select rows using a vector of row numbers. More...
|
|
Table | operator() (const Block< Bool > &mask) const |
| Select rows using a mask block. More...
|
|
Table | project (const Block< String > &columnNames) const |
| Project the given columns (i.e. More...
|
|
Table | operator& (const Table &) const |
| Do logical operations on a table. More...
|
|
Table | operator| (const Table &) const |
| Union with another table. More...
|
|
Table | operator- (const Table &) const |
| Subtract another table. More...
|
|
Table | operator^ (const Table &) const |
| Xor with another table. More...
|
|
Table | operator! () const |
| Take complement. More...
|
|
Table | sort (const String &columnName, int=Sort::Ascending, int=Sort::ParSort) const |
| Sort a table on one or more columns of scalars. More...
|
|
Table | sort (const Block< String > &columnNames, int=Sort::Ascending, int=Sort::ParSort) const |
| Sort on multiple columns. More...
|
|
Table | sort (const Block< String > &columnNames, const Block< Int > &sortOrders, int=Sort::ParSort) const |
| Sort on multiple columns. More...
|
|
Table | sort (const Block< String > &columnNames, const Block< CountedPtr< BaseCompare > > &compareObjects, const Block< Int > &sortOrders, int=Sort::ParSort) const |
| Sort on multiple columns. More...
|
|
RowNumbers | rowNumbers () const |
| Get a vector of row numbers in the root table of rows in this table. More...
|
|
RowNumbers | rowNumbers (const Table &that, Bool tryFast=False) const |
| Get a vector of row numbers in that table of rows in this table. More...
|
|
void | addColumn (const ColumnDesc &columnDesc, Bool addToParent=True) |
| Add a column to the table. More...
|
|
void | addColumn (const ColumnDesc &columnDesc, const String &dataManager, Bool byName, Bool addToParent=True) |
| Use an existing data manager with the given name or type. More...
|
|
void | addColumn (const ColumnDesc &columnDesc, const DataManager &dataManager, Bool addToParent=True) |
| Use the given data manager (which is a new one). More...
|
|
void | addColumn (const TableDesc &tableDesc, const DataManager &dataManager, Bool addToParent=True) |
| Add a bunch of columns using the given new data manager. More...
|
|
void | addColumn (const TableDesc &tableDesc, const Record &dataManagerInfo, Bool addToParent=True) |
|
Bool | canRemoveColumn (const String &columnName) const |
| Test if columns can be removed. More...
|
|
Bool | canRemoveColumn (const Vector< String > &columnNames) const |
|
void | removeColumn (const String &columnName) |
| Remove columns. More...
|
|
void | removeColumn (const Vector< String > &columnName) |
|
Bool | canRenameColumn (const String &columnName) const |
| Test if a column can be renamed. More...
|
|
void | renameColumn (const String &newName, const String &oldName) |
| Rename a column. More...
|
|
void | renameHypercolumn (const String &newName, const String &oldName) |
|
void | getTableKeyword (AipsIO &, Bool openWritable) |
| Read a table from AipsIO (for TableKeywords ). More...
|
|
DataManager * | findDataManager (const String &name, Bool byColumn=False) const |
| Find the data manager with the given name or for the given column name. More...
|
|
TableExprNode | key (const String &keywordName) const |
| Create a TableExprNode object for a column or for a keyword
in the table keyword set. More...
|
|
TableExprNode | key (const Vector< String > &fieldNames) const |
|
TableExprNode | col (const String &columnName) const |
|
TableExprNode | col (const String &columnName, const Vector< String > &fieldNames) const |
|
TableExprNode | keyCol (const String &name, const Vector< String > &fieldNames) const |
|
|
static MSTableMaps & | getMaps () |
| Get the static struct containing all column and keyword mappings. More...
|
|
static void | colMapDef (MSTableMaps &maps, ColEnum col, const String &colName, DataType colType, const String &colComment, const String &colUnit="", const String &colMeasureType="") |
| Define an entry in the column maps. More...
|
|
static void | keyMapDef (MSTableMaps &maps, KeyEnum key, const String &keyName, DataType keyType, const String &keyComment) |
| Define an entry in the keyword maps. More...
|
|
static const String & | columnName (const MSTableMaps &maps, ColEnum which) |
| Convert a ColEnum to the actual column name. More...
|
|
static DataType | columnDataType (const MSTableMaps &maps, ColEnum which) |
|
static const String & | columnStandardComment (const MSTableMaps &maps, ColEnum which) |
|
static const String & | columnUnit (const MSTableMaps &maps, ColEnum which) |
|
static const String & | columnMeasureType (const MSTableMaps &maps, ColEnum which) |
|
static const String & | keywordName (const MSTableMaps &maps, KeyEnum which) |
|
static DataType | keywordDataType (const MSTableMaps &maps, KeyEnum which) |
|
static const String & | keywordStandardComment (const MSTableMaps &maps, KeyEnum which) |
|
Bool | isColumn (ColEnum which) const |
| ColEnum convenience functions. More...
|
|
Bool | isColumnWritable (ColEnum which) const |
| check to see if a column is writable More...
|
|
Bool | isColumnWritable (const String &columnName) const |
|
Bool | isColumnWritable (uInt columnIndex) const |
|
Bool | isScalar (ColEnum which) const |
| Information about scalar vs array of a column. More...
|
|
Bool | isArray (ColEnum which) const |
|
const String & | unit (const String &which) const |
| Return the UNIT keyword value associated with the specified column. More...
|
|
const String & | unit (ColEnum which) const |
|
Bool | isKeyword (KeyEnum which) const |
| check to see if a keyword exists More...
|
|
static const String & | columnName (ColEnum which) |
| Convert a ColEnum to the actual column name. More...
|
|
static ColEnum | columnType (const String &name) |
| Convert a name to a ColEnum. More...
|
|
static DataType | columnDataType (ColEnum which) |
| return the data type for a given ColEnum More...
|
|
static const String & | columnStandardComment (ColEnum which) |
| return the standard comment for a given ColEnum More...
|
|
static const String & | columnUnit (ColEnum which) |
| return the UNIT string for a given ColEnum More...
|
|
static const String & | columnMeasureType (ColEnum which) |
| return the MEASURE_TYPE string for a given ColEnum More...
|
|
static void | addColumnToDesc (TableDesc &tabDesc, ColEnum which, Int ndim=-1, const String &refCol="") |
| add a column to a TableDesc An exception is thrown for an invalid data type. More...
|
|
static void | addColumnToDesc (TableDesc &tabDesc, ColEnum which, const IPosition &shape, ColumnDesc::Option option, const String &refCol="") |
| add a column to a TableDesc, defining the shape and setting the ColumnDesc option (Fixed, Undefined, Direct) For Measure columns you can define a variable reference column. More...
|
|
static void | addColumnToDesc (MSTableMaps &, ColEnum which, Int ndim=-1, const String &refCol="") |
|
static void | addColumnToDesc (MSTableMaps &, ColEnum which, const IPosition &shape, ColumnDesc::Option option, const String &refCol="") |
| add a column to a TableDesc, defining the shape and setting the ColumnDesc option (Fixed, Undefined, Direct) For Measure columns you can define a variable reference column. More...
|
|
static const String & | keywordName (KeyEnum which) |
| KeyEnum convenience functions. More...
|
|
static KeyEnum | keywordType (const String &name) |
|
static DataType | keywordDataType (KeyEnum which) |
|
static const String & | keywordStandardComment (KeyEnum which) |
|
static void | addKeyToDesc (TableDesc &, KeyEnum key) |
| add a keyword to a TableDesc An exception is thrown for an invalid data type. More...
|
|
static void | addKeyToDesc (MSTableMaps &, KeyEnum key) |
|
template<class MSEnum>
class casacore::MSTable< MSEnum >
A Table intended to hold astronomical data.
Intended use:
Public interface
Review Status
- Reviewed By:
- Bob Garwood
- Date Reviewed:
- 1997/02/01
Prerequisite
Etymology
The MSTable is the base class for all MeasurementSet Tables, hence the name.
Synopsis
A MSTable is a Table. Most operations on a MSTable are Table operations. See the Tables module for a list of those operations. The member functions provided by this class are primarily convenience functions to help users follow the agreed upon column and keyword naming conventions. They are useful when creating a Table following the MSTable conventions from scratch as well as when creating the column objects to access those columns. All actual MeasurementSet Tables will be derived from this class.
The standard way of accessing table columns is through Strings. Mistakes in typing the column name will not be caught at compile time (and may not be caught at run time). We have therefore decided to use an enumeration to specify columns so that many mistakes will be caught at compile time. This requires functions to map to and from this enumeration to the strings that are ultimately used.
Upon destruction, the table is checked to see that all required columns and keywords are still present. If not an exception is thrown. (Not a good idea!) Nevertheless, the table will be flushed to disk if it is writable - preserving its state.
Example
For examples of use, see the MeasurementSet class.
Motivation
The Table module is more than adequate as a container of data. However, in order for applications to be useful with data from different sources, some conventions need to be adopted in the use of Tables to store data. The MSTable provides the framework for these conventions and conversion functions. The actual definitions of columns and keywords are found in the derived classes and their "enum" base class (e.g. MSAntenna and MSAntennaEnums).
To Do
-
referenceCopy() should be more flexible with the storage managers used for the columns which are not merely references.
-
When ForwardColumnEngine is fixed so that it can deal with tables already in the cache, modify the test program. It may also be necessary to modify referenceCopy().
Definition at line 146 of file MSTable.h.