TableKeyword.h

Classes

TableKeyword -- Keyword value representing a table (full description)

class TableKeyword

Interface

Public Members
TableKeyword (const String& tableDescName)
TableKeyword (const Table& table, const String& tableDescName)
TableKeyword (const TableKeyword& that)
TableKeyword& operator= (const TableKeyword& that)
TableKeyword& operator= (const Table& table)
~TableKeyword()
void set (const String& name, const TableAttr& parentAttr)
void setRW()
Bool isMultiUsed (Bool checkSubTables) const
const String& tableName() const
String tableName (const String& parentName) const
String tableName (const TableAttr& parentAttr) const
Table table() const
const TableAttr& tableAttributes() const
void setTableAttributes (const TableAttr& attr)
void close() const
void flush (Bool fsync) const
void renameTable (const String& newParentName, const String& oldParentName)
Bool conform (const TableKeyword& that) const
Bool conform (const Table& that) const
Bool isFixed() const

Description

Review Status

Reviewed By:
Mark Wieringa
Date Reviewed:
1996/04/15
Programs:
Tests:

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");
    

Member Description

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 (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 (const TableKeyword& that)

Copy constructor (full copy semantics).

TableKeyword& operator= (const TableKeyword& that)
TableKeyword& operator= (const Table& table)

Assignment (leaves tableDescName_p untouched). This is only possible when both objects conform.

~TableKeyword()

void 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.

void 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.

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.

const String& tableName() const

Get the name of the table.

String tableName (const String& parentName) const
String tableName (const TableAttr& parentAttr) const

Get the name of the table relative to parent table.

Table table() const

Get the table. It will be opened when necessary.

const TableAttr& tableAttributes() const

Get the table attributes.

void setTableAttributes (const TableAttr& attr)

Set the table attributes.

void close() const

Close the table.

void flush (Bool fsync) const

Flush and optionally fsync the table.

void renameTable (const String& newParentName, const String& oldParentName)

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

Bool conform (const TableKeyword& that) const
Bool conform (const Table& 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.

Bool isFixed() const

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