casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Friends | List of all members
casacore::ArrayColumnDesc< T > Class Template Reference

Templated class for description of table array columns. More...

#include <ArrColDesc.h>

Inheritance diagram for casacore::ArrayColumnDesc< T >:
casacore::ArrayColumnDescBase casacore::BaseColumnDesc

Public Member Functions

 ArrayColumnDesc (const String &name, Int ndim=-1, int options=0)
 Construct the column with the given name and dimensionality. More...
 
 ArrayColumnDesc (const String &name, const String &comment, Int ndim=-1, int options=0)
 Construct the column with the given name, dimensionality, and comment. More...
 
 ArrayColumnDesc (const String &name, const String &comment, const String &dataManName, const String &dataManGroup, Int ndim=-1, int options=0)
 Construct the column with the given name, dimensionality, comment, and default data manager type and group. More...
 
 ArrayColumnDesc (const String &name, const IPosition &shape, int options=0)
 Construct the column with the given name and shape. More...
 
 ArrayColumnDesc (const String &name, const String &comment, const IPosition &shape, int options=0)
 Construct the column with the given name, shape, and comment. More...
 
 ArrayColumnDesc (const String &name, const String &comment, const String &dataManName, const String &dataManGroup, const IPosition &shape, int options=0, int ndim=-1)
 Construct the column with the given name, shape, comment, and default data manager type and group. More...
 
 ArrayColumnDesc (const ArrayColumnDesc< T > &)
 Copy constructor (copy semantics);. More...
 
 ~ArrayColumnDesc ()
 
ArrayColumnDesc< T > & operator= (const ArrayColumnDesc< T > &)
 Assignment (copy semantics);. More...
 
BaseColumnDescclone () const
 Clone this column description to another. More...
 
void registerClass () const
 Register the construction function of this class. More...
 
- Public Member Functions inherited from casacore::ArrayColumnDescBase
 ArrayColumnDescBase (const String &name, const String &comment, const String &dataManagerType, const String &dataManagerGroup, DataType, const String &dataTypeId, Int options, uInt ndim, const IPosition &shape)
 Construct with given parameters. More...
 
 ArrayColumnDescBase (const ArrayColumnDescBase &)
 Copy constructor (copy semantics);. More...
 
 ~ArrayColumnDescBase ()
 
ArrayColumnDescBaseoperator= (const ArrayColumnDescBase &)
 Assignment (copy semantics);. More...
 
String className () const
 Get the name of this class. More...
 
virtual PlainColumnmakeColumn (ColumnSet *) const
 Create a 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...
 
virtual TableDesctableDesc ()
 
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...
 

Friends

class ColumnDesc
 

Additional Inherited Members

- Protected Member Functions inherited from casacore::ArrayColumnDescBase
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...
 
- 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

template<class T>
class casacore::ArrayColumnDesc< T >

Templated class for description of table array columns.

Intended use:

Public interface

Review Status

Reviewed By:
Gareth Hunt
Date Reviewed:
94Nov17

Prerequisite

Etymology

This class builds descriptions of table columns where each cell (which may also be called a row) will hold an array.

Synopsis

ArrayColumnDesc is a templated class for defining a table column containing arrays.

The table values are handled by a data manager. This can be a storage manager to store the values in a file or it can be a virtual column engine to calculate them on-the-fly. Only the basic data types are allowed when storing in a file. These are: Bool, uChar, Short, uShort, Int, uInt, Int64, float, double, Complex, DComplex and String.

At table creation time (when a table gets created from a table description), each column needs to be bound to a data manager. If not done explicitly, the table system will bind a column to the default manager defined in the column description.

An array column description consists of the following attributes:

There are several constructors, which allow the definition of most of the above mentioned attributes. Others, like the default keyword set, have to be defined explicitly.

This class is derived from ArrayColumnDescBase, thus the functions in there also apply to this class.

Once a column description is set up satisfactorily, it must be added to a table description before it can be used by the table system.

Example

TableDesc tabDesc("tTableDesc", "1", TableDesc::New);
// Now define array columns.
// This one is indirect and has no dimensionality mentioned yet.
// Define the keyword UNIT in it.
ArrayColumnDesc<Complex> arr1Column("Arr1", "comment for Arr1");
arr1Column.rwKeywordSet().define ("UNIT", "Jy");
tabDesc.addColumn (arr1Column);
// This one is indirect and has 3-dim arrays.
tabDesc.addColumn (ArrayColumnDesc<Int>("Arr2",
"comment for Arr2",
3));
// This one is direct and has 2-dim arrays with axis lengths 4 and 7.
tabDesc.addColumn (ArrayColumnDesc<uInt>("Arr3",
"comment for Arr1",
IPosition(2,4,7),

Motivation

Several column description classes are needed to allow the user to define attributes which are special for each column type. For scalars the special attribute is the default value. They all have to be templated to support arbitrary data types.

Template Type Argument Requirements (T)

Definition at line 236 of file ArrColDesc.h.

Constructor & Destructor Documentation

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
Int  ndim = -1,
int  options = 0 
)
explicit

Construct the column with the given name and dimensionality.

The data manager type defaults to the StandardStman storage manager. The data manager group defaults to the data manager type. Ndim <=0 means that the number of dimensions is free and will be defined when creating the table (rows). Ndim>0 means that the arrays in this column must have the given dimensionality. The possible options are defined in ColumnDesc.h.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
const String comment,
Int  ndim = -1,
int  options = 0 
)

Construct the column with the given name, dimensionality, and comment.

The data manager type defaults to the StandardStman storage manager. The data manager group defaults to the data manager type. Ndim <=0 means that the number of dimensions is free and will be defined when creating the table (rows). Ndim>0 means that the arrays in this column must have the given dimensionality. The possible options are defined in ColumnDesc.h.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
const String comment,
const String dataManName,
const String dataManGroup,
Int  ndim = -1,
int  options = 0 
)

Construct the column with the given name, dimensionality, comment, and default data manager type and group.

A blank data manager group defaults to the data manager type. Ndim <=0 means that the number of dimensions is free and will be defined when creating the table (rows). Ndim>0 means that the arrays in this column must have the given dimensionality. The possible options are defined in ColumnDesc.h.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
const IPosition shape,
int  options = 0 
)

Construct the column with the given name and shape.

The data manager type defaults to the StandardStman storage manager. The data manager group defaults to the data manager type. The possible options are defined in ColumnDesc.h. This constructor can only be used for FixedShape arrays, because the shape of other arrays can only be set per row.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
const String comment,
const IPosition shape,
int  options = 0 
)

Construct the column with the given name, shape, and comment.

The data manager type defaults to the StandardStman storage manager. The data manager group defaults to the data manager type. The possible options are defined in ColumnDesc.h. This constructor can only be used for FixedShape arrays, because the shape of other arrays can only be set per row.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const String name,
const String comment,
const String dataManName,
const String dataManGroup,
const IPosition shape,
int  options = 0,
int  ndim = -1 
)

Construct the column with the given name, shape, comment, and default data manager type and group.

A blank data manager group defaults to the data manager type. The possible options are defined in ColumnDesc.h. This constructor can only be used for FixedShape arrays, because the shape of other arrays can only be set per row. If both ndim and shape are given as > 0, ndim should match the length of shape.

template<class T>
casacore::ArrayColumnDesc< T >::ArrayColumnDesc ( const ArrayColumnDesc< T > &  )

Copy constructor (copy semantics);.

template<class T>
casacore::ArrayColumnDesc< T >::~ArrayColumnDesc ( )

Member Function Documentation

template<class T>
BaseColumnDesc* casacore::ArrayColumnDesc< T >::clone ( ) const
virtual

Clone this column description to another.

Implements casacore::BaseColumnDesc.

template<class T>
static BaseColumnDesc* casacore::ArrayColumnDesc< T >::makeDesc ( const String name)
static

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

template<class T>
ArrayColumnDesc<T>& casacore::ArrayColumnDesc< T >::operator= ( const ArrayColumnDesc< T > &  )

Assignment (copy semantics);.

template<class T>
void casacore::ArrayColumnDesc< T >::registerClass ( ) const

Register the construction function of this class.

Friends And Related Function Documentation

template<class T>
friend class ColumnDesc
friend

Definition at line 238 of file ArrColDesc.h.


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