casacore
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
casacore::SubTableDesc Class Reference

More...

#include <SubTabDesc.h>

Public Member Functions

 SubTableDesc (const String &columnName, const String &comment, const String &tableDescName, int options=0)
 Construct from a table description with the given name. More...
 
 SubTableDesc (const String &columnName, const String &comment, const TableDesc &, int options=0)
 Construct from the given table description, which will be copied and frozen. More...
 
 SubTableDesc (const String &columnName, const String &comment, TableDesc *, int options=0)
 Construct from the given table description, which will be used directly. More...
 
 SubTableDesc (const SubTableDesc &)
 Copy constructor (copy semantics). More...
 
 ~SubTableDesc ()
 
SubTableDescoperator= (const SubTableDesc &)
 Assignment (copy semantics). More...
 
BaseColumnDescclone () const
 Clone this column description to another. More...
 
TableDesctableDesc ()
 Get the table description. More...
 
String className () const
 Get the name of this class. More...
 
PlainColumnmakeColumn (ColumnSet *) const
 Create a Column column object out of this. More...
 
void show (ostream &os) const
 Show the column. More...
 
- Public Member Functions inherited from casacore::BaseColumnDesc
 BaseColumnDesc (const String &name, const String &comment, const String &dataManagerType, const String &dataManagerGroup, DataType, const String &dataTypeId, Int options, uInt ndim, const IPosition &shape, Bool isScalar, Bool isArray, Bool isTable)
 Construct the column base object. More...
 
 BaseColumnDesc (const BaseColumnDesc &)
 Copy constructor (copy semantics). More...
 
virtual ~BaseColumnDesc ()
 
TableRecordrwKeywordSet ()
 Get access to the set of keywords. More...
 
const TableRecordkeywordSet () const
 
const Stringname () const
 Get the name of the column. More...
 
DataType dataType () const
 Get the data type of the column. More...
 
const StringdataTypeId () const
 Get the type id for non-standard data types (i.e. More...
 
const StringdataManagerType () const
 Get the type name of the default data manager. More...
 
StringdataManagerType ()
 Get the type name of the default data manager. More...
 
const StringdataManagerGroup () const
 Get the data manager group. More...
 
StringdataManagerGroup ()
 Get the data manager group. More...
 
void setDefaultDataManager (Bool always)
 Set the data manager type and group to the default. More...
 
const Stringcomment () const
 Get comment string. More...
 
Stringcomment ()
 Get comment string (allowing it to be changed). More...
 
Int options () const
 Get the options. More...
 
Bool isScalar () const
 Test if column is scalar, array or table. More...
 
Bool isArray () const
 
Bool isTable () const
 
Int ndim () const
 Get the number of dimensions. More...
 
const IPositionshape () const
 Get the predefined shape. More...
 
void setNdim (uInt ndim)
 Set the number of dimensions. More...
 
void setShape (const IPosition &shape)
 Set the predefined shape. More...
 
void setShape (const IPosition &shape, Bool directOption)
 
void setOptions (Int options)
 Set the options to the given value. More...
 
uInt maxLength () const
 Get the maximum value length. More...
 
void setMaxLength (uInt maxLength)
 Set the maximum value length. More...
 
const TableDesctableDesc () const
 Get table description (in case column contains subtables). More...
 
void setName (const String &name)
 Set the name of the column (for a rename). More...
 

Static Public Member Functions

static BaseColumnDescmakeDesc (const String &name)
 Create the object from AipsIO (this function is registered). More...
 

Protected Member Functions

virtual void putDesc (AipsIO &) const
 Put the object. More...
 
virtual void getDesc (AipsIO &)
 Get the object. More...
 
- Protected Member Functions inherited from casacore::BaseColumnDesc
BaseColumnDescoperator= (const BaseColumnDesc &)
 Assignment (copy semantics). More...
 
void putFile (AipsIO &, const TableAttr &) const
 Put the object. More...
 
void getFile (AipsIO &, const TableAttr &)
 Get the object. More...
 
RefColumnmakeRefColumn (RefTable *, BaseColumn *) const
 Make a RefColumn object out of the description. More...
 
virtual ConcatColumnmakeConcatColumn (ConcatTable *) const
 Make a ConcatColumn object out of the description. More...
 

Private Member Functions

Bool readTableDesc ()
 Read table description (if passed by name). More...
 
void handleAdd (ColumnDescSet &)
 Handle the addition of the subtable description (clear the flag). More...
 

Private Attributes

TableDesctabDescPtr_p
 
String tabDescTyp_p
 
Bool byName_p
 
Bool allocSelf_p
 
Bool shallowCopy_p
 

Friends

class ColumnDesc
 

Additional Inherited Members

- Protected Attributes inherited from casacore::BaseColumnDesc
String colName_p
 
String comment_p
 
String dataManType_p
 
String dataManGroup_p
 
DataType dtype_p
 
String dtypeId_p
 
Int option_p
 
Int nrdim_p
 
IPosition shape_p
 
uInt maxLength_p
 
TableRecordkeySetPtr_p
 
Bool isScalar_p
 
Bool isArray_p
 
Bool isTable_p
 

Detailed Description

Description of columns containing tables

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Etymology

SubTableDesc holds a description of a subtable contained in the columns of the parent table.

Synopsis

SubTableDesc describes a table column containing subtables. The semantics of subtables are described below. The column description is constructed using a table description describing the subtable. This subtable decription or its name is stored with the column description. When a table containing this column gets created, the subtable description gets copied and this copy is thereafter frozen.

Constructing a column description for a subtable can be done in 3 ways:

A column can be direct or indirect. Direct columns will be written directly in the table file. All cells in the column must have the same description and it is therefore not possible to change a description. The subtables in indirect columns will be stored in separate files. The cells in indirect columns can contain different tables.

Example

// First build the new description of a subtable.
// Define keyword subkey (integer) having value 10.
// Define columns ra and dec (double).
TableDesc subTableDesc("tTableDesc_sub", "1", TableDesc::New);
subTableDesc.keywordSet().keysInt()("subkey") = 10;
subTableDesc.addColumn (TpDouble, "ra");
subTableDesc.addColumn (TpDouble, "dec");
// Now create a new table description
TableDesc td("tTableDesc", "1", TableDesc::New);
// Add columns containing subtables.
// This is done in 3 slighty different ways, which all have
// their own (dis)advantages.
// This is described in detail at the SubTableDesc constructors.
td.addColumn (SubTableDesc("sub1", "subtable by name","tTableDesc_sub"));
td.addColumn (SubTableDesc("sub2", "subtable copy", subTableDesc));
td.addColumn (SubTableDesc("sub3", "subtable pointer", &subTableDesc));
SubTableDesc(const String &columnName, const String &comment, const String &tableDescName, int options=0)
Construct from a table description with the given name.

Motivation

Several column description classes are needed to allow the user to define attributes which are special for each column type. For columns containing a table this is the table description.

To Do

Definition at line 143 of file SubTabDesc.h.

Constructor & Destructor Documentation

◆ SubTableDesc() [1/4]

casacore::SubTableDesc::SubTableDesc ( const String columnName,
const String comment,
const String tableDescName,
int  options = 0 
)

Construct from a table description with the given name.

The description does not need to exist yet. Only when the table gets created, the description will be read and must exist. This means that the table description is not frozen; the most recent description will be used when creating the column.

◆ SubTableDesc() [2/4]

casacore::SubTableDesc::SubTableDesc ( const String columnName,
const String comment,
const TableDesc ,
int  options = 0 
)

Construct from the given table description, which will be copied and frozen.

◆ SubTableDesc() [3/4]

casacore::SubTableDesc::SubTableDesc ( const String columnName,
const String comment,
TableDesc ,
int  options = 0 
)

Construct from the given table description, which will be used directly.

The description gets frozen when the column is written. Care should be taken, because the given table description must not be deleted before the column description gets destructed.

◆ SubTableDesc() [4/4]

casacore::SubTableDesc::SubTableDesc ( const SubTableDesc )

Copy constructor (copy semantics).

◆ ~SubTableDesc()

casacore::SubTableDesc::~SubTableDesc ( )

Member Function Documentation

◆ className()

String casacore::SubTableDesc::className ( ) const
virtual

Get the name of this class.

Implements casacore::BaseColumnDesc.

◆ clone()

BaseColumnDesc* casacore::SubTableDesc::clone ( ) const
virtual

Clone this column description to another.

Implements casacore::BaseColumnDesc.

◆ getDesc()

virtual void casacore::SubTableDesc::getDesc ( AipsIO )
protectedvirtual

Get the object.

Implements casacore::BaseColumnDesc.

◆ handleAdd()

void casacore::SubTableDesc::handleAdd ( ColumnDescSet )
privatevirtual

Handle the addition of the subtable description (clear the flag).

Reimplemented from casacore::BaseColumnDesc.

◆ makeColumn()

PlainColumn* casacore::SubTableDesc::makeColumn ( ColumnSet ) const
virtual

Create a Column column object out of this.

This is used by class ColumnSet to construct a table column object.

Implements casacore::BaseColumnDesc.

◆ makeDesc()

static BaseColumnDesc* casacore::SubTableDesc::makeDesc ( const String name)
static

Create the object from AipsIO (this function is registered).

◆ operator=()

SubTableDesc& casacore::SubTableDesc::operator= ( const SubTableDesc )

Assignment (copy semantics).

◆ putDesc()

virtual void casacore::SubTableDesc::putDesc ( AipsIO ) const
protectedvirtual

Put the object.

Implements casacore::BaseColumnDesc.

◆ readTableDesc()

Bool casacore::SubTableDesc::readTableDesc ( )
private

Read table description (if passed by name).

If the table description is not found, a False value is returned.

◆ show()

void casacore::SubTableDesc::show ( ostream &  os) const
virtual

Show the column.

Implements casacore::BaseColumnDesc.

◆ tableDesc()

TableDesc* casacore::SubTableDesc::tableDesc ( )
virtual

Get the table description.

Thrown Exceptions

Reimplemented from casacore::BaseColumnDesc.

Friends And Related Function Documentation

◆ ColumnDesc

friend class ColumnDesc
friend

Definition at line 146 of file SubTabDesc.h.

Member Data Documentation

◆ allocSelf_p

Bool casacore::SubTableDesc::allocSelf_p
private

Definition at line 210 of file SubTabDesc.h.

◆ byName_p

Bool casacore::SubTableDesc::byName_p
private

Definition at line 209 of file SubTabDesc.h.

◆ shallowCopy_p

Bool casacore::SubTableDesc::shallowCopy_p
private

Definition at line 211 of file SubTabDesc.h.

◆ tabDescPtr_p

TableDesc* casacore::SubTableDesc::tabDescPtr_p
private

Definition at line 207 of file SubTabDesc.h.

◆ tabDescTyp_p

String casacore::SubTableDesc::tabDescTyp_p
private

Definition at line 208 of file SubTabDesc.h.


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