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...
 
TableKeyword & operator= (const TableKeyword &that)
 Assignment (leaves tableDescName_p untouched). More...
 
TableKeyword & operator= (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 String & tableName () 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 TableAttr & tableAttributes () 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

Table * table_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: