casa
$Rev:20696$
|
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) | |
Create a new table using the table description with the given name. | |
SetupNewTable (const String &tableName, const TableDesc &, Table::TableOption) | |
Create a new table using the given table description. | |
SetupNewTable (const SetupNewTable &) | |
Copy constructor (reference semantics). | |
~SetupNewTable () | |
SetupNewTable & | operator= (const SetupNewTable &) |
Assignment (reference semantics). | |
const String & | name () const |
Get the name of the table. | |
int | option () const |
Get the table create option. | |
Bool | isMarkedForDelete () const |
Test if the table is marked for delete. | |
const TableDesc & | tableDesc () const |
Get the table description. | |
void | adjustHypercolumns (const SimpleOrderedMap< String, String > &old2new, Bool keepUnknown) |
Adjust the hypercolumn definitions. | |
void | bindColumn (const String &columnName, const DataManager &dm) |
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 &dm, Bool rebind=False) |
Bind a group of columns to the given data manager. | |
void | bindAll (const DataManager &dm, 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. | |
Private Member Functions | |
ColumnSet * | columnSetPtr () |
Get pointer to column set. | |
TableDesc * | tableDescPtr () |
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 Attributes | |
SetupNewTableRep * | newTable_p |
Actual object. | |
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.
Table makeIt(const TableDesc &td) { // 1 SetupNewTable maker("test.table", td, Table::New); // 2 maker.setShapeColumn("SomeArray", IPosition(2,10,10)); // 3 maker.setShapeColumn("AnotherArray", IPosition(1,100)); // 4 StManAipsIO sm1; // 5 StManKarma sm2; // 6 maker.bindAll(sm1); // 7 maker.bindColumn("SomeCol", sm2); // 8 maker.bindColumn("AnotherCol", sm2); // 9 return Table(maker, 1000); // 1000 row table // 10 } // 11
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.
casa::SetupNewTable::SetupNewTable | ( | const String & | tableName, |
const String & | tableDescName, | ||
Table::TableOption | |||
) |
Create a new table using the table description with the given name.
The description will be read from a file.
casa::SetupNewTable::SetupNewTable | ( | const String & | tableName, |
const TableDesc & | , | ||
Table::TableOption | |||
) |
Create a new table using the given table description.
casa::SetupNewTable::SetupNewTable | ( | const SetupNewTable & | ) |
Copy constructor (reference semantics).
void casa::SetupNewTable::adjustHypercolumns | ( | const SimpleOrderedMap< String, String > & | old2new, |
Bool | keepUnknown | ||
) | [inline] |
Adjust the hypercolumn definitions.
It renames and/or removes columns as necessary.
Definition at line 381 of file SetupNewTab.h.
References casa::TableDesc::adjustHypercolumns(), newTable_p, and casa::SetupNewTableRep::tableDescPtr().
void casa::SetupNewTable::bindAll | ( | const DataManager & | dm, |
Bool | rebind = False |
||
) | [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 414 of file SetupNewTab.h.
References casa::SetupNewTableRep::bindAll(), and newTable_p.
void casa::SetupNewTable::bindColumn | ( | const String & | columnName, |
const DataManager & | dm | ||
) | [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 389 of file SetupNewTab.h.
References casa::SetupNewTableRep::bindColumn(), and newTable_p.
void casa::SetupNewTable::bindColumn | ( | const String & | columnName, |
const String & | otherColumn | ||
) | [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 397 of file SetupNewTab.h.
References casa::SetupNewTableRep::bindColumn(), and newTable_p.
void casa::SetupNewTable::bindCreate | ( | const Record & | spec | ) | [inline] |
Create data managers and bind the columns using the specifications in the given record (which is obtained using Table::dataManagerInfo()).
Definition at line 419 of file SetupNewTab.h.
References casa::SetupNewTableRep::bindCreate(), and newTable_p.
void casa::SetupNewTable::bindGroup | ( | const String & | columnGroup, |
const DataManager & | dm, | ||
Bool | rebind = False |
||
) | [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 405 of file SetupNewTab.h.
References casa::SetupNewTableRep::bindGroup(), and newTable_p.
ColumnSet* casa::SetupNewTable::columnSetPtr | ( | ) | [inline, private] |
Get pointer to column set.
This function is used by PlainTable.
Definition at line 445 of file SetupNewTab.h.
References casa::SetupNewTableRep::columnSetPtr(), and newTable_p.
void casa::SetupNewTable::handleUnbound | ( | ) | [inline, private] |
Make a data manager for all unbound columns.
Definition at line 459 of file SetupNewTab.h.
References casa::SetupNewTableRep::handleUnbound(), and newTable_p.
Bool casa::SetupNewTable::isMarkedForDelete | ( | ) | const [inline] |
Test if the table is marked for delete.
Definition at line 372 of file SetupNewTab.h.
References casa::SetupNewTableRep::isMarkedForDelete(), and newTable_p.
Bool casa::SetupNewTable::isUsed | ( | ) | const [inline] |
Test if object is already in use.
Definition at line 436 of file SetupNewTab.h.
References casa::SetupNewTableRep::isUsed(), and newTable_p.
const String& casa::SetupNewTable::name | ( | ) | const [inline] |
Get the name of the table.
Definition at line 364 of file SetupNewTab.h.
References casa::SetupNewTableRep::name(), and newTable_p.
SetupNewTable& casa::SetupNewTable::operator= | ( | const SetupNewTable & | ) |
Assignment (reference semantics).
int casa::SetupNewTable::option | ( | ) | const [inline] |
Get the table create option.
Definition at line 368 of file SetupNewTab.h.
References newTable_p, and casa::SetupNewTableRep::option().
void casa::SetupNewTable::setInUse | ( | ) | [inline, private] |
Set object to in use by a (Plain)Table object.
This function is used by PlainTable.
Definition at line 455 of file SetupNewTab.h.
References newTable_p, and casa::SetupNewTableRep::setInUse().
void casa::SetupNewTable::setShapeColumn | ( | const String & | columnName, |
const IPosition & | shape | ||
) | [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 432 of file SetupNewTab.h.
References newTable_p, and casa::SetupNewTableRep::setShapeColumn().
const TableDesc& casa::SetupNewTable::tableDesc | ( | ) | const [inline] |
Get the table description.
Definition at line 376 of file SetupNewTab.h.
References newTable_p, and casa::SetupNewTableRep::tableDesc().
TableDesc* casa::SetupNewTable::tableDescPtr | ( | ) | [inline, private] |
Get pointer to table description.
This function is used by PlainTable.
Definition at line 450 of file SetupNewTab.h.
References newTable_p, and casa::SetupNewTableRep::tableDescPtr().
friend class MemoryTable [friend] |
Definition at line 343 of file SetupNewTab.h.
friend class PlainTable [friend] |
Definition at line 342 of file SetupNewTab.h.
SetupNewTableRep* casa::SetupNewTable::newTable_p [private] |
Actual object.
Definition at line 441 of file SetupNewTab.h.
Referenced by adjustHypercolumns(), bindAll(), bindColumn(), bindCreate(), bindGroup(), columnSetPtr(), handleUnbound(), isMarkedForDelete(), isUsed(), name(), option(), setInUse(), setShapeColumn(), tableDesc(), and tableDescPtr().