26#ifndef TABLES_MSMBASE_H
27#define TABLES_MSMBASE_H
31#include <casacore/casa/aips.h>
32#include <casacore/tables/DataMan/DataManager.h>
33#include <casacore/casa/Containers/Block.h>
160 const String& dataTypeID);
163 const String& dataTypeID);
166 const String& dataTypeID);
Abstract base class for a data manager.
virtual void prepare()
Let the data manager initialize itself further.
virtual rownr_t open64(rownr_t nrrow, AipsIO &)
Open the storage manager file for an existing table.
virtual void deleteManager()
The data manager will be deleted (because all its columns are requested to be deleted).
virtual Bool canRemoveColumn() const
Does the storage manager allow to delete columns? (yes)
rownr_t nrow() const
Get the nr of rows in this storage manager.
MSMBase()
Create a memory storage manager.
virtual String dataManagerType() const
Get the type name of the data manager (i.e.
virtual Bool flush(AipsIO &, Bool fsync)
Flush and optionally fsync the data.
Bool hasPut_p
Has anything been put since the last flush?
virtual void create64(rownr_t nrrow)
Let the storage manager create the nr of rows needed.
MSMBase(const String &storageManagerName, const Record &)
virtual DataManagerColumn * reallocateColumn(DataManagerColumn *column)
Reallocate the column object if it is part of this data manager.
virtual void removeRow64(rownr_t rownr)
Delete a row from all columns.
PtrBlock< MSMColumn * > colSet_p
The assembly of all columns.
virtual Bool canReallocateColumns() const
The MemoryStMan wants to do reallocateColumn.
virtual void removeColumn(DataManagerColumn *)
Delete a column.
virtual Bool canRemoveRow() const
Does the storage manager allow to delete rows? (yes)
virtual Bool canAddRow() const
Does the storage manager allow to add rows? (yes)
MSMBase(const String &storageManagerName)
Create a memory storage manager with the given name.
virtual DataManagerColumn * makeDirArrColumn(const String &name, int dataType, const String &dataTypeID)
Create a direct array column.
void setHasPut()
Set the hasPut_p flag.
virtual DataManagerColumn * makeScalarColumn(const String &name, int dataType, const String &dataTypeID)
Create a column in the storage manager on behalf of a table column.
rownr_t nrrowCreate_p
The number of rows in create().
virtual void addRow64(rownr_t nrrow)
Add rows to all columns.
virtual rownr_t resync64(rownr_t nrrow)
Resync the storage manager with the new file contents.
String stmanName_p
Name given by user to this storage manager.
virtual void addColumn(DataManagerColumn *)
Add a column.
virtual Bool canAddColumn() const
Does the storage manager allow to add columns? (yes)
static DataManager * makeObject(const String &dataManagerType, const Record &spec)
Make the object from the string.
virtual DataManager * clone() const
Clone this object.
virtual String dataManagerName() const
Get the name given to this storage manager.
rownr_t nrrow_p
The number of rows in the columns.
virtual DataManagerColumn * makeIndArrColumn(const String &name, int dataType, const String &dataTypeID)
Create an indirect array column.
A drop-in replacement for Block<T*>.
String: the storage and methods of handling collections of characters.
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.