casacore
|
Create a new table - define shapes, data managers, etc. More...
#include <SetupNewTab.h>
Public Member Functions | |
SetupNewTable (const String &tableName, const String &tableDescName, Table::TableOption, const StorageOption &=StorageOption()) | |
Create a new table using the table description with the given name. More... | |
SetupNewTable (const String &tableName, const TableDesc &, Table::TableOption, const StorageOption &=StorageOption()) | |
Create a new table using the given table description. More... | |
SetupNewTable (const SetupNewTable &) | |
Copy constructor (reference semantics). More... | |
~SetupNewTable () | |
SetupNewTable & | operator= (const SetupNewTable &) |
Assignment (reference semantics). More... | |
const String & | name () const |
Get the name of the table. More... | |
int | option () const |
Get the table create option. More... | |
const StorageOption & | storageOption () const |
Get the storage option. More... | |
Bool | isMarkedForDelete () const |
Test if the table is marked for delete. More... | |
const TableDesc & | tableDesc () const |
Get the table description. More... | |
void | adjustHypercolumns (const std::map< String, String > &old2new, Bool keepUnknown) |
Adjust the hypercolumn definitions. More... | |
void | bindColumn (const String &columnName, const DataManager &dm) |
Bind a column to the given data manager. More... | |
void | bindColumn (const String &columnName, const String &otherColumn) |
Bind a column to the given data manager of the other column. More... | |
void | bindGroup (const String &columnGroup, const DataManager &dm, Bool rebind=False) |
Bind a group of columns to the given data manager. More... | |
void | bindAll (const DataManager &dm, Bool rebind=False) |
Bind all columns to the given data manager. More... | |
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()). More... | |
void | setShapeColumn (const String &columnName, const IPosition &shape) |
Define the shape of fixed shaped arrays in a column. More... | |
Bool | isUsed () const |
Test if object is already in use. More... | |
Private Member Functions | |
const CountedPtr< ColumnSet > & | columnSetPtr () const |
Get pointer to column set. More... | |
const CountedPtr< TableDesc > & | tableDescPtr () const |
Get pointer to table description. More... | |
void | setInUse () |
Set object to in use by a (Plain)Table object. More... | |
void | handleUnbound () |
Make a data manager for all unbound columns. More... | |
Private Attributes | |
CountedPtr< SetupNewTableRep > | newTable_p |
Actual object. More... | |
Friends | |
class | PlainTable |
class | MemoryTable |
Create a new table - define shapes, data managers, etc.
Public interface
SetupNewTable is a class to setup a new table.
Constructing a new table is a two stage process. First a SetupNewTable object has to be created. Thereafter its columns have to be bound defining how they have to be stored or calculated. Columns have to be bound to a data manager (e.g. a storage manager or a virtual column engine).. Once the required columns are bound, the actual Table object can be created. At this stage, still unbound columns will be bound to the default data managers. The Table object can be used to write data, etc.
The construct options for SetupNewTable are defined in class Table. The possible options are:
More information is provided in the Tables module documentation.
This code illustrates a simple function that creates a Table starting from a Table descriptor. I
In principle, SetupNewTab isn't necessary as what we are doing is logically just constructing a Table, so it could be done in the Table constructor. However such a process can be an involved one - binding multiple data managers and filling in the shapes of direct arrays - so separating the process makes it much clearer what is going on.
Definition at line 340 of file SetupNewTab.h.
casacore::SetupNewTable::SetupNewTable | ( | const String & | tableName, |
const String & | tableDescName, | ||
Table::TableOption | , | ||
const StorageOption & | = StorageOption() |
||
) |
Create a new table using the table description with the given name.
The description will be read from a file.
casacore::SetupNewTable::SetupNewTable | ( | const String & | tableName, |
const TableDesc & | , | ||
Table::TableOption | , | ||
const StorageOption & | = StorageOption() |
||
) |
Create a new table using the given table description.
casacore::SetupNewTable::SetupNewTable | ( | const SetupNewTable & | ) |
Copy constructor (reference semantics).
casacore::SetupNewTable::~SetupNewTable | ( | ) |
|
inline |
Adjust the hypercolumn definitions.
It renames and/or removes columns as necessary.
Definition at line 385 of file SetupNewTab.h.
References newTable_p.
|
inline |
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 SetupNewTable object is used to construct a Table object.
Definition at line 418 of file SetupNewTab.h.
References newTable_p.
|
inline |
Bind a column to the given data manager.
If already bound, the binding will be overwritten. It cannot be used anymore once the SetupNewTable object is used to construct a Table object.
Definition at line 393 of file SetupNewTab.h.
References newTable_p.
|
inline |
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.
Definition at line 401 of file SetupNewTab.h.
References newTable_p.
|
inline |
Create data managers and bind the columns using the specifications in the given record (which is obtained using Table::dataManagerInfo()).
Definition at line 423 of file SetupNewTab.h.
References newTable_p.
|
inline |
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 SetupNewTable object is used to construct a Table object.
Definition at line 409 of file SetupNewTab.h.
References newTable_p.
|
inlineprivate |
Get pointer to column set.
This function is used by PlainTable.
Definition at line 449 of file SetupNewTab.h.
References newTable_p.
|
inlineprivate |
Make a data manager for all unbound columns.
Definition at line 463 of file SetupNewTab.h.
References newTable_p.
|
inline |
Test if the table is marked for delete.
Definition at line 376 of file SetupNewTab.h.
References newTable_p.
|
inline |
Test if object is already in use.
Definition at line 440 of file SetupNewTab.h.
References newTable_p.
|
inline |
SetupNewTable& casacore::SetupNewTable::operator= | ( | const SetupNewTable & | ) |
Assignment (reference semantics).
|
inline |
|
inlineprivate |
Set object to in use by a (Plain)Table object.
This function is used by PlainTable.
Definition at line 459 of file SetupNewTab.h.
References newTable_p.
|
inline |
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 SetupNewTable object is used to construct a Table object.
Definition at line 436 of file SetupNewTab.h.
References newTable_p, and casacore::shape().
|
inline |
|
inline |
|
inlineprivate |
Get pointer to table description.
This function is used by PlainTable.
Definition at line 454 of file SetupNewTab.h.
References newTable_p.
|
friend |
Definition at line 343 of file SetupNewTab.h.
|
friend |
Definition at line 342 of file SetupNewTab.h.
|
private |
Actual object.
Definition at line 445 of file SetupNewTab.h.
Referenced by adjustHypercolumns(), bindAll(), bindColumn(), bindCreate(), bindGroup(), columnSetPtr(), handleUnbound(), isMarkedForDelete(), isUsed(), name(), option(), setInUse(), setShapeColumn(), storageOption(), tableDesc(), and tableDescPtr().