casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::ConcatTable Class Reference

Class to view a concatenation of tables as a single table. More...

#include <ConcatTable.h>

Inheritance diagram for casacore::ConcatTable:
casacore::BaseTable

Public Member Functions

 ConcatTable (const Block< Table > &tables, const Block< String > &subTables, const String &subDirName)
 Create a virtual table as the concatenation of the given tables. More...
 
 ConcatTable (const Block< String > &tableNames, const Block< String > &subTables, const String &subDirName, int option, const TableLock &lockOptions, const TSMOption &tsmOption)
 
 ConcatTable (AipsIO &, const String &name, rownr_t nrrow, int option, const TableLock &lockOptions, const TSMOption &tsmOption)
 Create a concat table out of a file (written by writeConcatTable). More...
 
virtual ~ConcatTable ()
 The destructor flushes (i.e. More...
 
virtual void getPartNames (Block< String > &names, Bool recursive) const
 Get the names of the tables this table consists of. More...
 
virtual void reopenRW ()
 Try to reopen the table (the underlying ones) for read/write access. More...
 
virtual Bool asBigEndian () const
 Is the table stored in big or little endian format? It returns the endianness of the first underlying table. More...
 
virtual const StorageOptionstorageOption () const
 Get the storage option used for the table. More...
 
virtual Bool isMultiUsed (Bool checkSubTable) const
 Is the table in use (i.e. More...
 
virtual const TableLocklockOptions () const
 Get the locking info. More...
 
virtual void mergeLock (const TableLock &lockOptions)
 Merge the given lock info with the existing one. More...
 
virtual Bool hasLock (FileLocker::LockType) const
 Has this process the read or write lock, thus can the table be read or written safely? More...
 
virtual Bool lock (FileLocker::LockType, uInt nattempts)
 Try to lock the table for read or write access. More...
 
virtual void unlock ()
 Unlock the table. More...
 
virtual void flush (Bool fsync, Bool recursive)
 Flush the table, i.e. More...
 
virtual void resync ()
 Resync the Table object with the table files. More...
 
virtual uInt getModifyCounter () const
 Get the modify counter. More...
 
virtual Bool isWritable () const
 Test if all underlying tables are opened as writable. More...
 
void getConcat (AipsIO &, int option, const TableLock &lockOptions, const TSMOption &tsmOption)
 Read a concat table from a file. More...
 
virtual void copy (const String &newName, int tableOption) const
 This is doing a shallow copy. More...
 
virtual void deepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, int tableOption, Bool, int endianFormat, Bool noRows) const
 Copy the table and all its subtables. More...
 
virtual int tableType () const
 It returns the type of the parent table. More...
 
virtual TableDesc actualTableDesc () const
 Get the actual table description. More...
 
virtual Record dataManagerInfo () const
 Get the data manager info (of the first underlying table). More...
 
virtual TableRecordkeywordSet ()
 Get readonly access to the table keyword set. More...
 
virtual TableRecordrwKeywordSet ()
 Get read/write access to the table keyword set. More...
 
virtual BaseColumngetColumn (uInt columnIndex) const
 Get a column object using its index. More...
 
virtual BaseColumngetColumn (const String &columnName) const
 Get a column object using its name. More...
 
virtual Bool canRemoveRow () const
 Test if it is possible to remove a row from this table (no). More...
 
virtual void removeRow (rownr_t rownr)
 Remove the given row. More...
 
virtual Bool canRemoveColumn (const Vector< String > &columnNames) const
 Test if columns can be removed (no). More...
 
virtual void addColumn (const ColumnDesc &columnDesc, Bool addToParent)
 Add one or more columns to the table. More...
 
virtual void addColumn (const ColumnDesc &columnDesc, const String &dataManager, Bool byName, Bool addToParent)
 
virtual void addColumn (const ColumnDesc &columnDesc, const DataManager &dataManager, Bool addToParent)
 
virtual void addColumn (const TableDesc &tableDesc, const DataManager &dataManager, Bool addToParent)
 
virtual void removeColumn (const Vector< String > &columnNames)
 Remove a column. More...
 
virtual Bool canRenameColumn (const String &columnName) const
 Test if a column can be renamed (no). More...
 
virtual void renameColumn (const String &newName, const String &oldName)
 Rename a column. More...
 
virtual void renameHypercolumn (const String &newName, const String &oldName)
 Rename a hypercolumn. More...
 
virtual DataManagerfindDataManager (const String &name, Bool byColumn) const
 Find the data manager with the given name or for the given column. More...
 
const ConcatRowsrows () const
 Get the rows object. More...
 
Block< BaseColumn * > getRefColumns (const String &columnName)
 Get the column objects in the referenced tables. More...
 
Table asTable ()
 Create a (temporary) Table object from it. More...
 
- Public Member Functions inherited from casacore::BaseTable
 BaseTable (const String &tableName, int tableOption, rownr_t nrrow)
 Initialize the object. More...
 
 BaseTable (MPI_Comm mpiComm, const String &tableName, int tableOption, rownr_t nrrow)
 MPI version of the constructor. More...
 
void BaseTableCommon (const String &tableName, int tableOption, rownr_t nrrow)
 Common code shared by the MPI constructor and non-MPI constructor. More...
 
virtual ~BaseTable ()
 
void link ()
 Link to this BaseTable object (i.e. More...
 
virtual Bool isNull () const
 Is the table a null table? By default it is not. More...
 
virtual void setTableChanged ()
 Set the table to being changed. More...
 
void doNotWrite ()
 Do not write the table (used in in case of exceptions). 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 StringtableName () const
 Get the table name. More...
 
virtual void rename (const String &newName, int tableOption)
 Rename the table. More...
 
int tableOption () const
 Get the table option. More...
 
void markForDelete (Bool callback, const String &oldName)
 Mark the table for delete. More...
 
void unmarkForDelete (Bool callback, const String &oldName)
 Unmark the table for delete. More...
 
Bool isMarkedForDelete () const
 Test if the table is marked for delete. More...
 
const TableDesctableDesc () const
 Get the table description. More...
 
void showStructure (std::ostream &, Bool showDataMan, Bool showColumns, Bool showSubTables, Bool sortColumns, Bool cOrder)
 Show the table structure (implementation of Table::showStructure). More...
 
TableInfotableInfo ()
 Get access to the TableInfo object. More...
 
virtual void flushTableInfo ()
 Write the TableInfo object. More...
 
rownr_t nrow () const
 Get number of rows. More...
 
virtual Bool canAddRow () const
 Test if it is possible to add a row to this table. More...
 
virtual void addRow (rownr_t nrrow=1, Bool initialize=True)
 Add one or more rows and possibly initialize them. More...
 
void removeRow (const Vector< rownr_t > &rownrs)
 
void removeRow (const Vector< uInt > &rownrs)
 
BaseTableselect (const TableExprNode &, rownr_t maxRow, rownr_t offset)
 Select rows using the given expression (which can be null). More...
 
BaseTableselect (rownr_t maxRow, rownr_t offset)
 Select maxRow rows and skip first offset rows. More...
 
BaseTableselect (const Vector< rownr_t > &rownrs)
 Select rows using a vector of row numbers. More...
 
BaseTableselect (const Block< Bool > &mask)
 Select rows using a mask block. More...
 
BaseTableproject (const Block< String > &columnNames)
 Project the given columns (i.e. More...
 
BaseTabletabAnd (BaseTable *)
 Do logical operations on a table. More...
 
BaseTabletabOr (BaseTable *)
 union with another table More...
 
BaseTabletabSub (BaseTable *)
 subtract another table More...
 
BaseTabletabXor (BaseTable *)
 xor with another table More...
 
BaseTabletabNot ()
 take complement More...
 
BaseTablesort (const Block< String > &columnNames, const Block< CountedPtr< BaseCompare > > &compareObjects, const Block< Int > &sortOrder, int sortOption, std::shared_ptr< Vector< rownr_t >> sortIterBoundaries=nullptr, std::shared_ptr< Vector< size_t >> sortIterKeyIdxChange=nullptr)
 Sort a table on one or more columns of scalars. More...
 
BaseTableIteratormakeIterator (const Block< String > &columnNames, const Block< CountedPtr< BaseCompare > > &, const Block< Int > &orders, int option, bool cacheIterationBoundaries=false)
 Create an iterator. More...
 
void addColumns (const TableDesc &tableDesc, const Record &dmInfo, Bool addToParent)
 Add one or more columns to the table. More...
 
Bool checkRemoveColumn (const Vector< String > &columnNames, Bool throwException) const
 Check if the set of columns can be removed. More...
 
virtual Vector< rownr_trowNumbers () const
 Get a vector of row numbers. More...
 
virtual BaseTableroot ()
 Get pointer to root table (i.e. More...
 
virtual Bool rowOrder () const
 Tell if the table is in row order. More...
 
virtual Vector< rownr_t > * rowStorage ()
 By the default the table cannot return the storage of rownrs. More...
 
virtual Bool adjustRownrs (rownr_t nrrow, Vector< rownr_t > &rownrs, Bool determineOrder) const
 Adjust the row numbers to be the actual row numbers in the root table. More...
 
virtual BaseTabledoSort (PtrBlock< BaseColumn * > &, const Block< CountedPtr< BaseCompare > > &, const Block< Int > &sortOrder, int sortOption, std::shared_ptr< Vector< rownr_t >> sortIterBoundaries, std::shared_ptr< Vector< size_t >> sortIterKeyIdxChange)
 Do the actual sort. More...
 
RefTablemakeRefTable (Bool rowOrder, rownr_t initialNrrow)
 Create a RefTable object. More...
 
void checkRowNumber (rownr_t rownr) const
 Check if the row number is valid. More...
 
int traceId () const
 Get the table's trace-id. More...
 

Static Public Member Functions

static void getLayout (TableDesc &desc, AipsIO &ios)
 Return the layout of a table (i.e. More...
 
- Static Public Member Functions inherited from casacore::BaseTable
static void unlink (BaseTable *)
 Unlink from a BaseTable. More...
 
static TableInfo tableInfo (const String &tableName)
 Get the table info of the table with the given name. More...
 

Private Member Functions

 ConcatTable (const ConcatTable &)
 Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result). More...
 
ConcatTableoperator= (const ConcatTable &)
 Assignment is forbidden, because copying a table requires some more knowledge (like table name of result). More...
 
void showStructureExtra (std::ostream &) const
 Show the extra table structure info (names of used tables). More...
 
void openTables (const Block< String > &tableNames, int option, const TableLock &lockOptions, const TSMOption &tsmOption)
 Open all tables in the required way. More...
 
void initialize ()
 Initialize. More...
 
void setup (BaseTable *btp, const Vector< String > &columnNames)
 Setup the main parts of the object. More...
 
void addInfo ()
 Add lines containing the concatenated tables to the info. More...
 
void makeConcatCol ()
 Create the ConcatColumn objects for all columns in the description. More...
 
void handleSubTables ()
 Handle the subtales that have to be concatenated. More...
 
void writeConcatTable (Bool fsync)
 Write a reference table. More...
 
void checkAddColumn (const String &name, Bool addToParent)
 Check if the column can be added, thus does not exist yet. More...
 
void addConcatCol (const ColumnDesc &cd)
 Add a column, with internal bookeeping (columns map). More...
 
void addConcatCol (const TableDesc &tdesc)
 Add multiple columns, with internal bookeeping (columns map). More...
 

Private Attributes

Block< StringsubTableNames_p
 
String subDirName_p
 
Block< Tabletables_p
 
std::map< String, ConcatColumn * > colMap_p
 
TableRecord keywordSet_p
 
Bool changed_p
 
ConcatRows rows_p
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::BaseTable
void scratchCallback (Bool isScratch, const String &oldName) const
 Do the callback for scratch tables (if callback is set). More...
 
Bool makeTableDir ()
 Create the table directory when needed (and possible). More...
 
void trueDeepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, int tableOption, int endianFormat, Bool noRows) const
 Make a true deep copy of the table. More...
 
void prepareCopyRename (const String &newName, int tableOption) const
 Prepare for copying or renaming a table. More...
 
virtual void renameSubTables (const String &newName, const String &oldName)
 Rename the subtables (used by rename function). More...
 
void throwIfTableExists ()
 Check if the table already exists. More...
 
Bool openedForWrite () const
 Test if the table is opened for write. More...
 
void writeStart (AipsIO &, Bool bigEndian)
 Start writing a table. More...
 
void writeEnd (AipsIO &)
 End writing a table. More...
 
Bool shouldNotWrite () const
 Should the table be written. More...
 
void getTableInfo ()
 Read the TableInfo object. More...
 
- Protected Attributes inherited from casacore::BaseTable
uInt nrlink_p
 
rownr_t nrrow_p
 
rownr_t nrrowToAdd_p
 
CountedPtr< TableDesctdescPtr_p
 
String name_p
 
int option_p
 
Bool noWrite_p
 
Bool delete_p
 
TableInfo info_p
 
Bool madeDir_p
 
int itsTraceId
 

Detailed Description

Class to view a concatenation of tables as a single table.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN

Prerequisite

Etymology

ConcatTable represents the concatenation of one or more tables.

Synopsis

ConcatTable is used to virtually concatenate one or more tables. Those tables must have the same description.

It acts to the user as a normal table. All gets and puts are handled by ConcatColumn which directs them to the referenced columns while (if needed) converting the given row number to the row number in the referenced tables. For that purpose ConcatTable keeps the number of rows in the referenced tables.
Note: Currently it cannot handle changes in the number of rows in the underlying tables;

It is possible to specify the keyword names of the subtables that have to be concatenated as well. The other subtables are assumed to be identical for all tables, so only the subtable of the first table is used.

The ConcatTable maintains its own keyword set, which is initially a copy of the keyword set of the first table. It replaces the keywords of the subtables to be concatenated. The keyword set is not persistent. One can add or change keywords, but these changes are not kept when the ConcatTable object is made persistent.

Motivation

Sometimes a very large MeasurementSet is split into multiple smaller ones using the time axis. Using ConcatTable they can still be viewed as a single MS. The SYSCAL subtable is split in time as well, thus it has to be possible to concatenate that one as well.
Note: An MS split in subband could be concatenated as well provided that at least the first part contains the full SPECTRAL_WINDOW subtable and that unique SPWids are used;

To Do

Definition at line 118 of file ConcatTable.h.

Constructor & Destructor Documentation

casacore::ConcatTable::ConcatTable ( const Block< Table > &  tables,
const Block< String > &  subTables,
const String subDirName 
)

Create a virtual table as the concatenation of the given tables.

It checks if the table descriptions of the tables are the same. Subtables with the given names will be concatenated as well. It is assumed that the other subtables are the same for all tables, so the ones of the first table are used.
The option can be Table::Old or Table::Update.
If a non-empty subdirectory name is given, the tables will be moved to that subdirectory when the concatenated table is written (by writeConcatTable).

casacore::ConcatTable::ConcatTable ( const Block< String > &  tableNames,
const Block< String > &  subTables,
const String subDirName,
int  option,
const TableLock lockOptions,
const TSMOption tsmOption 
)
casacore::ConcatTable::ConcatTable ( AipsIO ,
const String name,
rownr_t  nrrow,
int  option,
const TableLock lockOptions,
const TSMOption tsmOption 
)

Create a concat table out of a file (written by writeConcatTable).

The referenced tables will also be opened (if not stored in the cache).

virtual casacore::ConcatTable::~ConcatTable ( )
virtual

The destructor flushes (i.e.

writes) the table if it is opened for output and not marked for delete.

casacore::ConcatTable::ConcatTable ( const ConcatTable )
private

Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).

Declaring it private, makes it unusable.

Member Function Documentation

virtual TableDesc casacore::ConcatTable::actualTableDesc ( ) const
virtual

Get the actual table description.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::addColumn ( const ColumnDesc columnDesc,
Bool  addToParent 
)
virtual

Add one or more columns to the table.

The column is added to the parent tables if told so and if not existing.

Reimplemented from casacore::BaseTable.

virtual void casacore::ConcatTable::addColumn ( const ColumnDesc columnDesc,
const String dataManager,
Bool  byName,
Bool  addToParent 
)
virtual

Reimplemented from casacore::BaseTable.

virtual void casacore::ConcatTable::addColumn ( const ColumnDesc columnDesc,
const DataManager dataManager,
Bool  addToParent 
)
virtual

Reimplemented from casacore::BaseTable.

virtual void casacore::ConcatTable::addColumn ( const TableDesc tableDesc,
const DataManager dataManager,
Bool  addToParent 
)
virtual

Reimplemented from casacore::BaseTable.

void casacore::ConcatTable::addConcatCol ( const ColumnDesc cd)
private

Add a column, with internal bookeeping (columns map).

void casacore::ConcatTable::addConcatCol ( const TableDesc tdesc)
private

Add multiple columns, with internal bookeeping (columns map).

void casacore::ConcatTable::addInfo ( )
private

Add lines containing the concatenated tables to the info.

virtual Bool casacore::ConcatTable::asBigEndian ( ) const
virtual

Is the table stored in big or little endian format? It returns the endianness of the first underlying table.

Implements casacore::BaseTable.

Table casacore::ConcatTable::asTable ( )
inline

Create a (temporary) Table object from it.

Definition at line 306 of file ConcatTable.h.

References casacore::False.

virtual Bool casacore::ConcatTable::canRemoveColumn ( const Vector< String > &  columnNames) const
virtual

Test if columns can be removed (no).

Implements casacore::BaseTable.

virtual Bool casacore::ConcatTable::canRemoveRow ( ) const
virtual

Test if it is possible to remove a row from this table (no).

Reimplemented from casacore::BaseTable.

virtual Bool casacore::ConcatTable::canRenameColumn ( const String columnName) const
virtual

Test if a column can be renamed (no).

Implements casacore::BaseTable.

void casacore::ConcatTable::checkAddColumn ( const String name,
Bool  addToParent 
)
private

Check if the column can be added, thus does not exist yet.

virtual void casacore::ConcatTable::copy ( const String newName,
int  tableOption 
) const
virtual

This is doing a shallow copy.

It gives an error if the ConcatTable has not been stored yet.

Reimplemented from casacore::BaseTable.

virtual Record casacore::ConcatTable::dataManagerInfo ( ) const
virtual

Get the data manager info (of the first underlying table).

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::deepCopy ( const String newName,
const Record dataManagerInfo,
const StorageOption ,
int  tableOption,
Bool  ,
int  endianFormat,
Bool  noRows 
) const
virtual

Copy the table and all its subtables.

It copies the contents of each row to get a real copy.

Reimplemented from casacore::BaseTable.

virtual DataManager* casacore::ConcatTable::findDataManager ( const String name,
Bool  byColumn 
) const
virtual

Find the data manager with the given name or for the given column.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::flush ( Bool  fsync,
Bool  recursive 
)
virtual

Flush the table, i.e.

write it to disk. Nothing will be done if the table is not writable. A flush can be executed at any time. When a table is marked for delete, the destructor will remove files written by intermediate flushes. Note that if necessary the destructor will do an implicit flush, unless it is executed due to an exception.

Implements casacore::BaseTable.

virtual BaseColumn* casacore::ConcatTable::getColumn ( uInt  columnIndex) const
virtual

Get a column object using its index.

Implements casacore::BaseTable.

virtual BaseColumn* casacore::ConcatTable::getColumn ( const String columnName) const
virtual

Get a column object using its name.

Implements casacore::BaseTable.

void casacore::ConcatTable::getConcat ( AipsIO ,
int  option,
const TableLock lockOptions,
const TSMOption tsmOption 
)

Read a concat table from a file.

The underlying tables will be opened (if not stored in the cache).

static void casacore::ConcatTable::getLayout ( TableDesc desc,
AipsIO ios 
)
static

Return the layout of a table (i.e.

description and #rows). This function has the advantage that only the minimal amount of information required is read from the table, thus it is much faster than a normal table open.
The number of rows is returned. The description of the table is stored in desc (its contents will be overwritten).

virtual uInt casacore::ConcatTable::getModifyCounter ( ) const
virtual

Get the modify counter.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::getPartNames ( Block< String > &  names,
Bool  recursive 
) const
virtual

Get the names of the tables this table consists of.

Reimplemented from casacore::BaseTable.

Block<BaseColumn*> casacore::ConcatTable::getRefColumns ( const String columnName)

Get the column objects in the referenced tables.

void casacore::ConcatTable::handleSubTables ( )
private

Handle the subtales that have to be concatenated.

virtual Bool casacore::ConcatTable::hasLock ( FileLocker::LockType  ) const
virtual

Has this process the read or write lock, thus can the table be read or written safely?

Implements casacore::BaseTable.

void casacore::ConcatTable::initialize ( )
private

Initialize.

It checks if the descriptions of all tables are equal. It creates the keyword setfor which it concatenates subtables as needed.

virtual Bool casacore::ConcatTable::isMultiUsed ( Bool  checkSubTable) const
virtual

Is the table in use (i.e.

open) in another process? It always returns False.

Implements casacore::BaseTable.

virtual Bool casacore::ConcatTable::isWritable ( ) const
virtual

Test if all underlying tables are opened as writable.

Implements casacore::BaseTable.

virtual TableRecord& casacore::ConcatTable::keywordSet ( )
virtual

Get readonly access to the table keyword set.

Implements casacore::BaseTable.

virtual Bool casacore::ConcatTable::lock ( FileLocker::LockType  ,
uInt  nattempts 
)
virtual

Try to lock the table for read or write access.

Implements casacore::BaseTable.

virtual const TableLock& casacore::ConcatTable::lockOptions ( ) const
virtual

Get the locking info.

All underlying tables have the same lock option.

Implements casacore::BaseTable.

void casacore::ConcatTable::makeConcatCol ( )
private

Create the ConcatColumn objects for all columns in the description.

virtual void casacore::ConcatTable::mergeLock ( const TableLock lockOptions)
virtual

Merge the given lock info with the existing one.

Implements casacore::BaseTable.

void casacore::ConcatTable::openTables ( const Block< String > &  tableNames,
int  option,
const TableLock lockOptions,
const TSMOption tsmOption 
)
private

Open all tables in the required way.

ConcatTable& casacore::ConcatTable::operator= ( const ConcatTable )
private

Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).

Declaring it private, makes it unusable.

virtual void casacore::ConcatTable::removeColumn ( const Vector< String > &  columnNames)
virtual

Remove a column.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::removeRow ( rownr_t  rownr)
virtual

Remove the given row.

Reimplemented from casacore::BaseTable.

virtual void casacore::ConcatTable::renameColumn ( const String newName,
const String oldName 
)
virtual

Rename a column.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::renameHypercolumn ( const String newName,
const String oldName 
)
virtual

Rename a hypercolumn.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::reopenRW ( )
virtual

Try to reopen the table (the underlying ones) for read/write access.

An exception is thrown if the table is not writable. Nothing is done if the table is already open for read/write.

Implements casacore::BaseTable.

virtual void casacore::ConcatTable::resync ( )
virtual

Resync the Table object with the table files.

Implements casacore::BaseTable.

const ConcatRows& casacore::ConcatTable::rows ( ) const
inline

Get the rows object.

Definition at line 299 of file ConcatTable.h.

References rows_p.

virtual TableRecord& casacore::ConcatTable::rwKeywordSet ( )
virtual

Get read/write access to the table keyword set.

This requires that the table is locked (or it gets locked when using AutoLocking mode).

Implements casacore::BaseTable.

void casacore::ConcatTable::setup ( BaseTable btp,
const Vector< String > &  columnNames 
)
private

Setup the main parts of the object.


First create the name map (mapping column name in ConcatTable to the column in the original table). If the BaseTable is a ConcatTable, use its name map. Otherwise create the initial name map from the table description. A rename might change the map.
Create the ConcatColumn objects.
Create the initial TableInfo as a copy of the original BaseTable.

void casacore::ConcatTable::showStructureExtra ( std::ostream &  ) const
privatevirtual

Show the extra table structure info (names of used tables).

Reimplemented from casacore::BaseTable.

virtual const StorageOption& casacore::ConcatTable::storageOption ( ) const
virtual

Get the storage option used for the table.

It returns the storage option of the first underlying table.

Implements casacore::BaseTable.

virtual int casacore::ConcatTable::tableType ( ) const
virtual

It returns the type of the parent table.

Reimplemented from casacore::BaseTable.

virtual void casacore::ConcatTable::unlock ( )
virtual

Unlock the table.

This will also synchronize the table data, thus force the data to be written to disk.

Implements casacore::BaseTable.

void casacore::ConcatTable::writeConcatTable ( Bool  fsync)
private

Write a reference table.

Member Data Documentation

Bool casacore::ConcatTable::changed_p
private

Definition at line 368 of file ConcatTable.h.

std::map<String,ConcatColumn*> casacore::ConcatTable::colMap_p
private

Definition at line 366 of file ConcatTable.h.

TableRecord casacore::ConcatTable::keywordSet_p
private

Definition at line 367 of file ConcatTable.h.

ConcatRows casacore::ConcatTable::rows_p
private

Definition at line 369 of file ConcatTable.h.

Referenced by rows().

String casacore::ConcatTable::subDirName_p
private

Definition at line 364 of file ConcatTable.h.

Block<String> casacore::ConcatTable::subTableNames_p
private

Definition at line 363 of file ConcatTable.h.

Block<Table> casacore::ConcatTable::tables_p
private

Definition at line 365 of file ConcatTable.h.


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