The main purpose of the class is to deal with constructing, writing and reading the column objects. It is used by classes SetupNewTable and Table.
Reopen the data managers for read/write.
Rename the necessary subtables in the column keywords.
Are subtables used in other processes.
Get a column by name.
Get a column by index.
Add a data manager. It increments seqCount_p and returns that as a unique sequence number. This can, for instance, be used to create a unique file name.
Initialize the data managers for a new table. It creates the data manager column objects for each column and it allows the data managers to link themselves to the Table object and to initialize themselves.
Link the ColumnSet object to the BaseTable object.
Link the ColumnSet object to the TableLockData object.
Check if the table is locked for read or write. If manual or permanent locking is in effect, it checks if the table is properly locked. If autolocking is in effect, it locks the table when needed.
Inspect the auto lock when the inspection interval has expired and release it when another process needs the lock.
If needed, get a temporary user lock. It returns False if the lock was already there.
Release a temporary user lock if the given release flag is True.
Do all data managers and engines allow to add rows?
Do all data managers and engines allow to remove rows?
Can the given columns be removed from the data manager?
Can a column be renamed in the data manager?
Add rows to all data managers.
Remove a row from all data managers. It will throw an exception if not possible.
Remove the columns from the map and the data manager.
Rename the column in the map.
Add a column to the table. The default implementation throws an "invalid operation" exception.
Get nr of rows.
Get the actual table description.
Get the data manager info. Optionally only the virtual engines are retrieved.
Initialize rows startRownr till endRownr (inclusive).
Write all the data and let the data managers flush their data. This function is called when a table gets written (i.e. flushed). It returns True if any data manager wrote something.
Read the data, reconstruct the data managers, and link those to the table object. This function gets called when an existing table is read back.
Set the table to being changed.
Get the data manager change flags (used by PlainTable).
Synchronize the data managers when data in them have changed.
Invalidate the column caches for all columns.
Get the correct data manager. This is used by the column objects to link themselves to the correct datamanagers when they are read back.
Check if no double data manager names have been given.
Find the data manager with the given name. When the data manager is unknown, an exception is thrown. A blank name means the data manager is unknown.
Synchronize the columns after it appeared that data in the main table file have changed. It cannot deal with changes in number of columns, so it throws an exception when they have changed. Keywords in all columns are updated. The other ColumnSet gives the new data.
Let the data managers (from the given index on) initialize themselves.
Let the data managers (from the given index on) prepare themselves.
Check if a data manager name has not already been used. Start checking at the given index in the array. It returns False if the name has already been used. By default an exception is thrown if the name has already been used.
Make a unique data manager name by appending a suffix _n if needed where n is a number that makes the name unique.
Do the actual addition of a column.
Check if columns to be removed can be removed. It returns a map of DataManager* telling how many columns for a data manager have to be removed. A count of -1 means that all columns have to be removed. For such columns the flag in the returned Block is False, otherwise True.
Check if the table is locked for read or write. If manual or permanent locking is in effect, it checks if the table is properly locked. If autolocking is in effect, it locks the table when needed.