Loading...
Searching...
No Matches
casacore::SetupNewTableRep Class Reference
tables package (libcasa_tables) » Tables_module » Tables_module_internal_classes

More...

`#include <SetupNewTab.h>`

## Public Member Functions

| SetupNewTableRep (const String &tableName, const String &tableDescName, Table::TableOption, const StorageOption &)
| Create a new table using the table description with the given name.
| SetupNewTableRep (const String &tableName, const TableDesc &, Table::TableOption, const StorageOption &)
| Create a new table using the given table description.
| ~SetupNewTableRep ()
| SetupNewTableRep (const SetupNewTableRep &)=delete
| Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).
SetupNewTableRep & | operator= (const SetupNewTableRep &)=delete
| Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).
const String & | name () const
| Get the name of the table.
int | option () const
| Get the table create option.
const StorageOption & | storageOption () const
| Get the storage option.
Bool | isMarkedForDelete () const
| Test if the table is marked for delete.
const TableDesc & | tableDesc () const
| Get the table description.
void | bindColumn (const String &columnName, const DataManager &)
| Bind a column to the given data manager.
void | bindColumn (const String &columnName, const String &otherColumn)
| Bind a column to the given data manager of the other column.
void | bindGroup (const String &columnGroup, const DataManager &, Bool rebind=False)
| Bind a group of columns to the given data manager.
void | bindAll (const DataManager &, Bool rebind=False)
| Bind all columns to the given data manager.
void | bindCreate (const Record &spec)
| Create data managers and bind the columns using the specifications in the given record (which is obtained using Table::dataManagerInfo()).
void | setShapeColumn (const String &columnName, const IPosition &shape)
| Define the shape of fixed shaped arrays in a column.
Bool | isUsed () const
| Test if object is already in use.
const std::shared_ptr< ColumnSet > & | columnSetPtr () const
| Get pointer to column set.
const std::shared_ptr< TableDesc > & | tableDescPtr () const
| Get pointer to table description.
void | setInUse ()
| Set object to in use by a (Plain)Table object.
void | handleUnbound ()
| Make a data manager for all unbound columns.

## Private Member Functions

void | setup ()
| Setup the new table.
DataManager * | getDataManager (const DataManager &dataMan)
| Get the internal data manager object for the given data manager.

## Private Attributes

String | tabName_p
| Table name.
int | option_p
| Constructor options.
StorageOption | storageOpt_p
Bool | delete_p
| Marked for delete?
std::shared_ptr< TableDesc > | tdescPtr_p
std::shared_ptr< ColumnSet > | colSetPtr_p
std::map< void *, void * > | dataManMap_p

## Detailed Description

Representation for handle class SetupNewTable

### Intended use:

Internal

### Review Status

Reviewed By:
  bglenden
Date Reviewed:
  12AUG94
Test programs:
  None

### Prerequisite

- TableDesc and related classes like ArrayColumnDesc
- DataManager
- Table

### Etymology

SetupNewTableRep is the representation of class SetupNewTable.

### Synopsis

SetupNewTableRep is the representation of class SetupNewTable. Its functionality is described there.

### Motivation

Copying a SetupNewTable object as such is very difficult, if not impossible. However, being able to use a SetupNewTable copy constructor was required to be able to have (static) functions constructing a SetupNewTable object and return it by value (as done for example by ForwardColumn::setupNewTable). Therefore SetupNewTable is implemented using the handle idiom. SetupNewTable is the interface (i.e. the handle) for the user, while underneath SetupNewTableRep is doing all the work. The SetupNewTable copy constructor can simply copy yhe pointer to the underlying SetupNewTableRep object.

### To Do

- full implementation of tiling

Definition at line 91 of file SetupNewTab.h.

## Constructor & Destructor Documentation

## SetupNewTableRep() [1/3]

casacore::SetupNewTableRep::SetupNewTableRep | ( | const String & | tableName,
|  | const String & | tableDescName,
|  | Table::TableOption | ,
|  | const StorageOption & | )

Create a new table using the table description with the given name.

The description will be read from a file.

Referenced by operator=(), and SetupNewTableRep().

## SetupNewTableRep() [2/3]

casacore::SetupNewTableRep::SetupNewTableRep | ( | const String & | tableName,
|  | const TableDesc & | ,
|  | Table::TableOption | ,
|  | const StorageOption & | )

Create a new table using the given table description.

## ~SetupNewTableRep()

casacore::SetupNewTableRep::~SetupNewTableRep | ( |  | ) |

## SetupNewTableRep() [3/3]

casacore::SetupNewTableRep::SetupNewTableRep | ( | const SetupNewTableRep & |  | ) |

delete

Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).

References SetupNewTableRep().

## Member Function Documentation

## bindAll()

void casacore::SetupNewTableRep::bindAll | ( | const DataManager & | ,
|  | Bool | rebind = False )

Bind all columns to the given data manager.

The flag rebind tells if the binding of an already bound column will be overwritten. It cannot be used anymore once the SetupNewTableRep object is used to construct a Table object.

References casacore::False.

## bindColumn() [1/2]

void casacore::SetupNewTableRep::bindColumn | ( | const String & | columnName,
|  | const DataManager & | )

Bind a column to the given data manager.

If already bound, the binding will be overwritten. It cannot be used anymore once the SetupNewTableRep object is used to construct a Table object.

## bindColumn() [2/2]

void casacore::SetupNewTableRep::bindColumn | ( | const String & | columnName,
|  | const String & | otherColumn )

Bind a column to the given data manager of the other column.

If the other column is not bound, nothing will be done. If columnName is already bound, the binding will be overwritten. It cannot be used anymore once the SetupNewTableRep object is used to construct a Table object.

## bindCreate()

void casacore::SetupNewTableRep::bindCreate | ( | const Record & | spec | ) |

Create data managers and bind the columns using the specifications in the given record (which is obtained using Table::dataManagerInfo()).

References casacore::Record().

## bindGroup()

void casacore::SetupNewTableRep::bindGroup | ( | const String & | columnGroup,
|  | const DataManager & | ,
|  | Bool | rebind = False )

Bind a group of columns to the given data manager.

The flag rebind tells if the binding of an already bound column will be overwritten. It cannot be used anymore once the SetupNewTableRep object is used to construct a Table object.

References casacore::False.

## columnSetPtr()

const std::shared_ptr< ColumnSet > & casacore::SetupNewTableRep::columnSetPtr | ( |  | ) | const

inline

Get pointer to column set.

This function is used by PlainTable.

Definition at line 183 of file SetupNewTab.h.

References colSetPtr_p.

## getDataManager()

DataManager * casacore::SetupNewTableRep::getDataManager | ( | const DataManager & | dataMan | ) |

private

Get the internal data manager object for the given data manager.

If it does not exist yet, it will be cloned and stored internally.

## handleUnbound()

void casacore::SetupNewTableRep::handleUnbound | ( |  | ) |

Make a data manager for all unbound columns.

## isMarkedForDelete()

Bool casacore::SetupNewTableRep::isMarkedForDelete | ( |  | ) | const

inline

Test if the table is marked for delete.

Definition at line 126 of file SetupNewTab.h.

References delete_p.

## isUsed()

Bool casacore::SetupNewTableRep::isUsed | ( |  | ) | const

inline

Test if object is already in use.

Definition at line 178 of file SetupNewTab.h.

References colSetPtr_p.

## name()

const String & casacore::SetupNewTableRep::name | ( |  | ) | const

inline

Get the name of the table.

Definition at line 114 of file SetupNewTab.h.

References tabName_p.

## operator=()

SetupNewTableRep & casacore::SetupNewTableRep::operator= | ( | const SetupNewTableRep & |  | ) |

delete

Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).

References SetupNewTableRep().

## option()

int casacore::SetupNewTableRep::option | ( |  | ) | const

inline

Get the table create option.

Definition at line 118 of file SetupNewTab.h.

References option_p.

## setInUse()

void casacore::SetupNewTableRep::setInUse | ( |  | ) |

inline

Set object to in use by a (Plain)Table object.

This function is used by PlainTable.

Definition at line 193 of file SetupNewTab.h.

References colSetPtr_p.

## setShapeColumn()

void casacore::SetupNewTableRep::setShapeColumn | ( | const String & | columnName,
|  | const IPosition & | shape )

Define the shape of fixed shaped arrays in a column.

The shape of those arrays has to be known before the table can be constructed. It has to be defined via this function, if it was not already defined in the column description. If only the dimensionality was defined in the column description, the shape's dimensionality must match it. Calling this function for an non-fixed shaped array results in an exception. It cannot be used anymore once the SetupNewTableRep object is used to construct a Table object.

References casacore::shape().

## setup()

void casacore::SetupNewTableRep::setup | ( |  | ) |

private

Setup the new table.

This checks various things and creates the set of columns.

## storageOption()

const StorageOption & casacore::SetupNewTableRep::storageOption | ( |  | ) | const

inline

Get the storage option.

Definition at line 122 of file SetupNewTab.h.

References storageOpt_p.

## tableDesc()

const TableDesc & casacore::SetupNewTableRep::tableDesc | ( |  | ) | const

inline

Get the table description.

Definition at line 130 of file SetupNewTab.h.

References tdescPtr_p.

## tableDescPtr()

const std::shared_ptr< TableDesc > & casacore::SetupNewTableRep::tableDescPtr | ( |  | ) | const

inline

Get pointer to table description.

This function is used by PlainTable.

Definition at line 188 of file SetupNewTab.h.

References tdescPtr_p.

## Member Data Documentation

## colSetPtr_p

std::shared_ptr<ColumnSet> casacore::SetupNewTableRep::colSetPtr_p

private

Definition at line 208 of file SetupNewTab.h.

Referenced by columnSetPtr(), isUsed(), and setInUse().

## dataManMap_p

std::map<void*,void*> casacore::SetupNewTableRep::dataManMap_p

private

Definition at line 209 of file SetupNewTab.h.

## delete_p

Bool casacore::SetupNewTableRep::delete_p

private

Marked for delete?

Definition at line 206 of file SetupNewTab.h.

Referenced by isMarkedForDelete().

## option_p

int casacore::SetupNewTableRep::option_p

private

Constructor options.

Definition at line 203 of file SetupNewTab.h.

Referenced by option().

## storageOpt_p

StorageOption casacore::SetupNewTableRep::storageOpt_p

private

Definition at line 204 of file SetupNewTab.h.

Referenced by storageOption().

## tabName_p

String casacore::SetupNewTableRep::tabName_p

private

Table name.

Definition at line 201 of file SetupNewTab.h.

Referenced by name().

## tdescPtr_p

std::shared_ptr<TableDesc> casacore::SetupNewTableRep::tdescPtr_p

private

Definition at line 207 of file SetupNewTab.h.

Referenced by tableDesc(), and tableDescPtr().

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

- tables/Tables/SetupNewTab.h