casacore
Public Member Functions | Private Attributes | List of all members

More...

#include <TableKeyword.h>

Public Member Functions

 TableKeyword (const String &tableDescName)
 Construct a TableKeyword with the given tableDescName. More...
 
 TableKeyword (const Table &table, const String &tableDescName)
 Construct a TableKeyword from a Table. More...
 
 TableKeyword (const TableKeyword &that)
 Copy constructor (full copy semantics). More...
 
TableKeywordoperator= (const TableKeyword &that)
 Assignment (leaves tableDescName_p untouched). More...
 
TableKeywordoperator= (const Table &table)
 
 ~TableKeyword ()
 
void set (const String &name, const TableAttr &parentAttr)
 Set the name of the table and the writable switch. More...
 
void setRW ()
 Set the keyword to read/write access. More...
 
Bool isMultiUsed (Bool checkSubTables) const
 Is the table in use in another process? If checkSubTables is set, it is also checked if a subtable is used in another process. More...
 
const StringtableName () const
 Get the name of the table. More...
 
String tableName (const String &parentName) const
 Get the name of the table relative to parent table. More...
 
String tableName (const TableAttr &parentAttr) const
 
Table table (const TableLock *lockOptions=0) const
 Get the table. More...
 
const TableAttrtableAttributes () const
 Get the table attributes. More...
 
void setTableAttributes (const TableAttr &attr)
 Set the table attributes. More...
 
void close () const
 Close the table. More...
 
void flush (Bool fsync) const
 Flush and optionally fsync the table. More...
 
void renameTable (const String &newParentName, const String &oldParentName)
 Rename the table if its path contains the old parent table name. More...
 
Bool conform (const TableKeyword &that) const
 Test if the table in other conforms this table keyword. More...
 
Bool conform (const Table &that) const
 
Bool isFixed () const
 Has the table a fixed description name? It has when its description name is not empty. More...
 

Private Attributes

Tabletable_p
 
TableAttr attr_p
 
String tableDescName_p
 

Detailed Description

Keyword value representing a table

Intended use:

Internal

Review Status

Reviewed By:
Mark Wieringa
Date Reviewed:
1996/04/15
Test programs:
tTableRecord

Prerequisite

Synopsis

TableKeyword represents a record keyword field containing a table. It is used by class TableRecord, which in its turn is meant to be used by the Table class. It serves the following purposes:

Motivation

This class provides the extra functionality for keywords containing tables. This is needed because tables are much more complex entities than scalars or arrays.

Example

// Store a table in the keyword set.
void someFunc (const Table& subTable)
{
// Open the table and get access to the table keyword set.
Table table("table.data", Table::Update);
TableRecord& keyset = table.rwKeywordSet();
keyset.defineTable ("KeyTab", subTable);
}
// Open the table and get the table from keyword KeyTab.
// It shows that this can be done in one statement.
Table table("table.data");
Table subTab = table.keywordSet().asTable ("KeyTab");
Table table(const TableLock *lockOptions=0) const
Get the table.
Table asTable(const RecordFieldId &) const
Get the table from the given field.
void defineTable(const RecordFieldId &, const Table &value, RecordType type=Variable)
TableRecord & rwKeywordSet()
Get read/write access to the table keyword set.
@ Update
update existing table
Definition: Table.h:182
const TableRecord & keywordSet() const
Get readonly access to the table keyword set.
Definition: Table.h:1177

Definition at line 121 of file TableKeyword.h.

Constructor & Destructor Documentation

◆ TableKeyword() [1/3]

casacore::TableKeyword::TableKeyword ( const String tableDescName)

Construct a TableKeyword with the given tableDescName.

When the tableDescName is empty the keyword is variable structured. Otherwise it is fixed structured, meaning that only tables with a description of that name can be assigned to this keyword.

◆ TableKeyword() [2/3]

casacore::TableKeyword::TableKeyword ( const Table table,
const String tableDescName 
)

Construct a TableKeyword from a Table.


When the tableDescName is empty the keyword is variable structured. Otherwise it is fixed structured, meaning that only tables with a description of that name can be assigned to this keyword.

◆ TableKeyword() [3/3]

casacore::TableKeyword::TableKeyword ( const TableKeyword that)

Copy constructor (full copy semantics).

◆ ~TableKeyword()

casacore::TableKeyword::~TableKeyword ( )

Member Function Documentation

◆ close()

void casacore::TableKeyword::close ( ) const

Close the table.

◆ conform() [1/2]

Bool casacore::TableKeyword::conform ( const Table that) const

◆ conform() [2/2]

Bool casacore::TableKeyword::conform ( const TableKeyword that) const

Test if the table in other conforms this table keyword.

It conforms when this description name is blank or matches the table description name of the other.

◆ flush()

void casacore::TableKeyword::flush ( Bool  fsync) const

Flush and optionally fsync the table.

◆ isFixed()

Bool casacore::TableKeyword::isFixed ( ) const
inline

Has the table a fixed description name? It has when its description name is not empty.

Definition at line 222 of file TableKeyword.h.

References casacore::String::empty(), and tableDescName_p.

◆ isMultiUsed()

Bool casacore::TableKeyword::isMultiUsed ( Bool  checkSubTables) const

Is the table in use in another process? If checkSubTables is set, it is also checked if a subtable is used in another process.

◆ operator=() [1/2]

TableKeyword& casacore::TableKeyword::operator= ( const Table table)

◆ operator=() [2/2]

TableKeyword& casacore::TableKeyword::operator= ( const TableKeyword that)

Assignment (leaves tableDescName_p untouched).

This is only possible when both objects conform.

◆ renameTable()

void casacore::TableKeyword::renameTable ( const String newParentName,
const String oldParentName 
)

Rename the table if its path contains the old parent table name.

◆ set()

void casacore::TableKeyword::set ( const String name,
const TableAttr parentAttr 
)

Set the name of the table and the writable switch.

This is used when reading back a keyword.

◆ setRW()

void casacore::TableKeyword::setRW ( )

Set the keyword to read/write access.

If the table is already open, it will be reopened with read/write access if the table is writable.

◆ setTableAttributes()

void casacore::TableKeyword::setTableAttributes ( const TableAttr attr)
inline

Set the table attributes.

Definition at line 184 of file TableKeyword.h.

References attr_p.

◆ table()

Table casacore::TableKeyword::table ( const TableLock lockOptions = 0) const

Get the table.

It will be opened when necessary. If given, the lockOptions will be used instead of the ones in the table attributes.

◆ tableAttributes()

const TableAttr& casacore::TableKeyword::tableAttributes ( ) const
inline

Get the table attributes.

Definition at line 180 of file TableKeyword.h.

References attr_p.

◆ tableName() [1/3]

const String & casacore::TableKeyword::tableName ( ) const
inline

Get the name of the table.

Definition at line 217 of file TableKeyword.h.

References attr_p, and casacore::TableAttr::name().

Referenced by tableName().

◆ tableName() [2/3]

String casacore::TableKeyword::tableName ( const String parentName) const

Get the name of the table relative to parent table.

◆ tableName() [3/3]

String casacore::TableKeyword::tableName ( const TableAttr parentAttr) const
inline

Definition at line 169 of file TableKeyword.h.

References casacore::TableAttr::name(), and tableName().

Member Data Documentation

◆ attr_p

TableAttr casacore::TableKeyword::attr_p
private

Definition at line 211 of file TableKeyword.h.

Referenced by setTableAttributes(), tableAttributes(), and tableName().

◆ table_p

Table* casacore::TableKeyword::table_p
private

Definition at line 210 of file TableKeyword.h.

◆ tableDescName_p

String casacore::TableKeyword::tableDescName_p
private

Definition at line 212 of file TableKeyword.h.

Referenced by isFixed().


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