It is possible to access an array or a subsection of it in an individual cell (i.e. table row) or in the entire column. The functions accessing the entire column are implemented by looping over the individual cells.
The main task of this class is to communicate with the data manager column object. This consists of:
The class is hidden from the user by the envelope class ArrayColumn. It used directly, it should be done with care. It assumes that the arrays in the various get and put functions have the correct length. ArrayColumn does that check.
Ask the data manager if the shape of an existing array can be changed.
Ask if the data manager can handle a cell slice.
Ask if the data manager can handle a column.
Ask if the data manager can handle some cells in a column.
Ask if the data manager can handle a column slice.
Initialize the rows from startRownr till endRownr (inclusive) with the default value defined in the column description (if defined).
Get the global #dimensions of an array (ie. for all rows).
Get the global shape of an array (ie. for all rows).
Set shape of all arrays in the column. It can only be used for direct arrays.
Get the #dimensions of an array in a particular cell. If the cell does not contain an array, 0 is returned.
Get the shape of an array in a particular cell. If the cell does not contain an array, an empty IPosition is returned.
Set dimensions of array in a particular cell.
The shape of tiles in the array can also be defined.
Set dimensions of array in a particular cell.
Test if the given cell contains an array.
Get the array from a particular cell. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Get a slice of an N-dimensional array in a particular cell. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Get the array of all values in a column. If the column contains n-dim arrays, the resulting array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Get the array of some values in a column. If the column contains n-dim arrays, the resulting array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Get subsections from all arrays in the column. If the column contains n-dim arrays, the resulting array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Get subsections from some arrays in the column. If the column contains n-dim arrays, the resulting array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put the value in a particular cell. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put a slice of an N-dimensional array in a particular cell. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put the array of all values in the column. If the column contains n-dim arrays, the source array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put the array of some values in the column. If the column contains n-dim arrays, the source array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put into subsections of all table arrays in the column. If the column contains n-dim arrays, the source array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Put into subsections of some table arrays in the column. If the column contains n-dim arrays, the source array is (n+1)-dim. The arrays in the column have to have the same shape in all cells. The length of the buffer pointed to by arrayPtr must match the actual length. This is checked by ArrayColumn.
Create a data manager column object for this column.
Copy constructor cannot be used.
Assignment cannot be used.
Check if the shape of an array can be set and if it is set correctly (i.e. if matching possible #dim in column description).
Write the column data. The control information is written into the given AipsIO object, while the data is written/flushed by the data manager.
Read the column data back. The control information is read from the given AipsIO object. This is used to bind the column to the appropriate data manager. Thereafter the data manager gets opened.