28 #ifndef TABLES_STMANAIPSIO_H
29 #define TABLES_STMANAIPSIO_H
233 virtual void remove (
uInt rownr);
475 const String& dataTypeID);
478 const String& dataTypeID);
481 const String& dataTypeID);
uInt getBlockStringV(uInt rownr, uInt nrmax, String *dataPtr)
uInt getBlockdoubleV(uInt rownr, uInt nrmax, double *dataPtr)
void putuShortV(uInt rownr, const uShort *dataPtr)
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
StManAipsIO & operator=(const StManAipsIO &)
Forbid assignment.
String dataManagerType() const
Get the type name of the data manager (i.e.
virtual void putData(void *datap, uInt nrval, AipsIO &)
Put the data (nrval elements) in an extension (starting at datap) into AipsIO.
void putfloatV(uInt rownr, const float *dataPtr)
void putBlockShortV(uInt rownr, uInt nrmax, const Short *dataPtr)
void getuShortV(uInt rownr, uShort *dataPtr)
DataManagerColumn * makeIndArrColumn(const String &name, int dataType, const String &dataTypeID)
Create an indirect array column.
uInt nrext_p
The nr of extensions in use.
void putBlockdoubleV(uInt rownr, uInt nrmax, const double *dataPtr)
void resize(uInt nrval)
Resize the data blocks.
virtual void putFile(uInt nrval, AipsIO &)
Write the column data into AipsIO.
std::complex< Float > Complex
virtual ~StManColumnAipsIO()
Frees up the storage.
void getShortV(uInt rownr, Short *dataPtr)
void putBlockBoolV(uInt rownr, uInt nrmax, const Bool *dataPtr)
Put nrmax scalars from the given row on.
void putBlockfloatV(uInt rownr, uInt nrmax, const float *dataPtr)
AipsIO is the object persistency mechanism of Casacore.
void putShortV(uInt rownr, const Short *dataPtr)
uInt nralloc_p
The number of allocated rows in the column.
Abstract base class for a column in a data manager.
virtual void getScalarColumnCellsShortV(const RefRows &rownrs, Vector< Short > *dataPtr)
int dtype_p
The data type (for caching purposes).
uInt getBlockDComplexV(uInt rownr, uInt nrmax, DComplex *dataPtr)
virtual Bool flush(AipsIO &, Bool fsync)
Flush and optionally fsync the data.
uInt getBlockuCharV(uInt rownr, uInt nrmax, uChar *dataPtr)
void deleteAll()
Delete all extensions.
void putdoubleV(uInt rownr, const double *dataPtr)
void getdoubleV(uInt rownr, double *dataPtr)
virtual void getData(void *datap, uInt index, uInt nrval, AipsIO &, uInt version)
Get data (nrval elements) into an extension (starting at datap plus the given index).
void putBlockInt64V(uInt rownr, uInt nrmax, const Int64 *dataPtr)
String dataManagerName() const
Get the name given to this storage manager.
void setHasPut()
Set the hasPut_p flag.
void putBlockIntV(uInt rownr, uInt nrmax, const Int *dataPtr)
uInt getBlockComplexV(uInt rownr, uInt nrmax, Complex *dataPtr)
void putuIntV(uInt rownr, const uInt *dataPtr)
void putBlockuShortV(uInt rownr, uInt nrmax, const uShort *dataPtr)
void putComplexV(uInt rownr, const Complex *dataPtr)
String stmanName_p
Name given by user to this storage manager.
ABSTRACT CLASSES Abstract class for colors Any implementation of color should be able to provide a hexadecimal form of the if a human readable name(i.e."black").In many places throughout the plotter
void putBlockuCharV(uInt rownr, uInt nrmax, const uChar *dataPtr)
StManAipsIO * stmanPtr_p
The storage manager.
Block< void * > data_p
The assembly of all extensions (actually Block<T*>).
StManAipsIO()
Create an AipsIO storage manager.
uInt getBlockShortV(uInt rownr, uInt nrmax, Short *dataPtr)
virtual void getScalarColumnCellsStringV(const RefRows &rownrs, Vector< String > *dataPtr)
void putDComplexV(uInt rownr, const DComplex *dataPtr)
virtual void getScalarColumnCellsIntV(const RefRows &rownrs, Vector< Int > *dataPtr)
int dataType() const
Return the data type of the column.
Bool canRemoveRow() const
Does the storage manager allow to delete rows? (yes)
void getDComplexV(uInt rownr, DComplex *dataPtr)
virtual void getScalarColumnCellsDComplexV(const RefRows &rownrs, Vector< DComplex > *dataPtr)
virtual void getScalarColumnCellsuShortV(const RefRows &rownrs, Vector< uShort > *dataPtr)
Bool canAddColumn() const
Does the storage manager allow to add columns? (yes)
StManArrayFile * iosfile_p
The file containing the indirect arrays.
AipsIO table column storage manager class.
Bool canRemoveColumn() const
Does the storage manager allow to delete columns? (yes)
void putIntV(uInt rownr, const Int *dataPtr)
Bool byPtr_p
The data is indirectly accessed via a pointer (for the derived classes).
virtual void getScalarColumnCellsuCharV(const RefRows &rownrs, Vector< uChar > *dataPtr)
Block< uInt > ncum_p
The cumulative nr of rows in all extensions.
void * getArrayPtr(uInt rownr)
Get the pointer for the given row.
void getuCharV(uInt rownr, uChar *dataPtr)
StManColumnAipsIO(StManAipsIO *stMan, int dataType, Bool byPtr)
Create a column of the given type.
uInt nrrow_p
The number of rows in the columns.
void deleteData(void *datap, Bool byPtr)
Delete an extension.
virtual void getScalarColumnCellsuIntV(const RefRows &rownrs, Vector< uInt > *dataPtr)
std::complex< Double > DComplex
DataManagerColumn * makeDirArrColumn(const String &name, int dataType, const String &dataTypeID)
Create a direct array column.
void putInt64V(uInt rownr, const Int64 *dataPtr)
virtual void getFile(uInt nrval, AipsIO &)
Read the column data from AipsIO.
Class holding the row numbers in a RefTable.
void getIntV(uInt rownr, Int *dataPtr)
virtual void getScalarColumnCellsdoubleV(const RefRows &rownrs, Vector< double > *dataPtr)
virtual void reopenRW()
Reopen the storage manager files for read/write.
virtual void create(uInt nrrow)
Let the storage manager create files as needed for a new table.
virtual void deleteManager()
The data manager will be deleted (because all its columns are requested to be deleted).
void putBlockComplexV(uInt rownr, uInt nrmax, const Complex *dataPtr)
void putArrayPtr(uInt rownr, void *dataPtr)
Put the pointer for the given row.
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
virtual void getScalarColumnCellsComplexV(const RefRows &rownrs, Vector< Complex > *dataPtr)
virtual void doCreate(uInt nrrow)
Create the number of rows in a new table.
static DataManager * makeObject(const String &dataManagerType, const Record &spec)
Make the object from the string.
virtual void getScalarColumnCellsfloatV(const RefRows &rownrs, Vector< float > *dataPtr)
uInt getBlockBoolV(uInt rownr, uInt nrmax, Bool *dataPtr)
Get scalars from the given row on with a maximum of nrmax values.
A drop-in replacement for Block<T*>.
void addColumn(DataManagerColumn *)
Add a column.
uInt getBlockfloatV(uInt rownr, uInt nrmax, float *dataPtr)
void getInt64V(uInt rownr, Int64 *dataPtr)
void putBlockStringV(uInt rownr, uInt nrmax, const String *dataPtr)
virtual Bool ok() const
Check if the class invariants still hold.
void putBlockDComplexV(uInt rownr, uInt nrmax, const DComplex *dataPtr)
AipsIO table storage manager class.
StManArrayFile * openArrayFile(ByteIO::OpenOption opt)
Open (if needed) the file for indirect arrays with the given mode.
OpenOption
Define the possible ByteIO open options.
uInt nrow() const
Get the nr of rows in this storage manager.
uInt uniqueNr()
Get a unique column number for the column (it is only unique for this storage manager).
void removeRow(uInt rownr)
Delete a row from all columns.
void putBlockuIntV(uInt rownr, uInt nrmax, const uInt *dataPtr)
Abstract base class for a data manager.
virtual void resync(uInt nrrow)
Resync the storage manager with the new file contents.
StManColumnAipsIO & operator=(const StManColumnAipsIO &)
Forbid assignment.
uInt getBlockuShortV(uInt rownr, uInt nrmax, uShort *dataPtr)
DataManager * clone() const
Clone this object.
uInt getBlockuIntV(uInt rownr, uInt nrmax, uInt *dataPtr)
void removeColumn(DataManagerColumn *)
Delete a column.
void removeData(void *datap, uInt inx, uInt nrvalAfter)
Remove an entry (i.e.
Bool canAddRow() const
Does the storage manager allow to add rows? (yes)
void putBoolV(uInt rownr, const Bool *dataPtr)
Put a scalar value into the given row.
uInt getBlockInt64V(uInt rownr, uInt nrmax, Int64 *dataPtr)
String: the storage and methods of handling collections of characters.
virtual void reopenRW()
Reopen the storage manager files for read/write.
void putStringV(uInt rownr, const String *dataPtr)
virtual void addRow(uInt newNrrow, uInt oldNrrow)
Add (newNrrow-oldNrrow) rows to the column.
PtrBlock< StManColumnAipsIO * > colSet_p
The assembly of all columns.
DataManagerColumn * makeScalarColumn(const String &name, int dataType, const String &dataTypeID)
Create a column in the storage manager on behalf of a table column.
virtual void open(uInt nrrow, AipsIO &)
Open the storage manager file for an existing table and read in the data and let the StManColumnAipsI...
uInt uniqnr_p
Unique nr for column in this storage manager.
Base table column storage manager class.
void getStringV(uInt rownr, String *dataPtr)
Bool hasPut_p
Has anything been put since the last flush?
void * allocData(uInt nrval, Bool byPtr)
Allocate an extension with the data type of the column.
Read/write array in external format for a storage manager.
uInt findExt(uInt rownr, Bool setCache)
Find the extension in which the row number is.
void addRow(uInt nrrow)
Add rows to all columns.
void getComplexV(uInt rownr, Complex *dataPtr)
uInt nextExt(void *&ext, uInt &extnr, uInt nrmax) const
Get the next extension.
uInt getBlockIntV(uInt rownr, uInt nrmax, Int *dataPtr)
void getBoolV(uInt rownr, Bool *dataPtr)
Get a scalar value in the given row.
void getfloatV(uInt rownr, float *dataPtr)
virtual void getScalarColumnCellsInt64V(const RefRows &rownrs, Vector< Int64 > *dataPtr)
void getuIntV(uInt rownr, uInt *dataPtr)
virtual void getScalarColumnCellsBoolV(const RefRows &rownrs, Vector< Bool > *dataPtr)
Get the scalar values in some cells of the column.
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.
void putuCharV(uInt rownr, const uChar *dataPtr)