30 #ifndef ASDM_ASDMSTMAN_H
31 #define ASDM_ASDMSTMAN_H
A Vector of integers, for indexing into Array<T> objects.
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
casacore::FiledesIO * itsBDF
virtual casacore::DataManagerColumn * makeDirArrColumn(const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID)
Create a direct array column.
std::complex< Float > Complex
virtual void reopenRW()
Reopen the storage manager files for read/write.
AipsIO is the object persistency mechanism of Casacore.
Abstract base class for a column in a data manager.
virtual casacore::DataManagerColumn * makeIndArrColumn(const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID)
Create an indirect array column.
static casacore::DataManager * makeObject(const casacore::String &aDataManType, const casacore::Record &spec)
Make the object from the type name string.
virtual casacore::Bool canRemoveRow() const
The storage manager cannot delete rows.
casacore::String itsDataManName
Name of data manager.
AsdmStMan(const casacore::String &dataManagerName="AsdmStMan")
Create a Asdm storage manager with the given name.
void writeIndex()
overwrite the index with the information presently stored in the data manager
AsdmStMan & operator=(const AsdmStMan &that)
Assignment cannot be used.
static void registerClass()
Register the class name and the static makeObject "constructor".
virtual void deleteManager()
The data manager will be deleted (because all its columns are requested to be deleted).
casacore::Bool setBDFNames(casacore::Block< casacore::String > &bDFNames)
overwrite the BDFNames (casacore::Block needs to have same size as original, returns false otherwise)...
void getData(casacore::uInt rownr, casacore::Complex *buf)
Get data.
virtual void open(casacore::uInt nrrow, casacore::AipsIO &)
Open the storage manager file for an existing table.
virtual void removeRow(casacore::uInt rowNr)
Delete a row from all columns.
void getInt(const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw)
casacore::Block< casacore::String > itsBDFNames
Class for unbuffered IO on a file.
The Storage Manager for the main table of a raw ASDM casacore::MS.
virtual casacore::Bool isRegular() const
Is this a regular storage manager? It is regular if it allows addition of rows and writing dara in th...
casacore::uInt searchIndex(casacore::Int64 rownr)
Return the entry number in the index containing the row.
An index entry for the ASDM Storage Manager.
virtual casacore::Bool flush(casacore::AipsIO &, casacore::Bool doFsync)
Flush and optionally fsync the data.
const AsdmIndex & findIndex(casacore::Int64 rownr)
Return the index block containing the row.
void closeBDF()
Close the currently open BDF file.
casacore::Int64 itsStartRow
std::vector< casacore::uInt > itsTransposeBLNum_v
std::vector< AsdmIndex > itsIndex
virtual casacore::Record dataManagerSpec() const
casacore::Record a record containing data manager specifications.
casacore::uInt getAsdmStManVersion() const
A hierarchical collection of named fields of various types.
bool Bool
Define the standard types used by Casacore.
virtual void addColumn(casacore::DataManagerColumn *)
Do the final addition of a column.
casacore::IPosition getShape(casacore::uInt rownr)
Get the data shape.
std::vector< AsdmColumn * > itsColumns
The column objects.
virtual void create(casacore::uInt nrrow)
Let the storage manager create files as needed for a new table.
std::vector< casacore::Int64 > itsIndexRows
virtual void resync(casacore::uInt nrrow)
Resync the storage manager with the new file contents.
void getAuto(const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl)
casacore::uInt itsVersion
std::vector< char > itsData
virtual void addRow(casacore::uInt nrrow)
Add rows to the storage manager.
void getFloat(const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw)
virtual casacore::String dataManagerName() const
Get the name given to the storage manager (in the constructor).
Abstract base class for a data manager.
virtual casacore::DataManager * clone() const
Clone this object.
void getBDFNames(casacore::Block< casacore::String > &bDFNames)
access the references to the ASDM BDFs
virtual void removeColumn(casacore::DataManagerColumn *)
Remove a column from the data file.
String: the storage and methods of handling collections of characters.
void getShort(const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw)
Get data from the buffer.
casacore::Int64 itsFileOffset
virtual casacore::String dataManagerType() const
Get the type name of the data manager (i.e.
virtual casacore::Bool canAddRow() const
The storage manager can add rows, but does nothing.
void setTransposeBLNum(casacore::uInt nBl)
set transposeBLNum_v
virtual void prepare()
Prepare the columns (needed for UvwColumn).
virtual casacore::Bool canRemoveColumn() const
Columns can be removed, but it does not do anything at all.
casacore::Int64 itsEndRow
void init()
Initialize by reading the index file and opening the BDFs.
casacore::uInt itsIndexEntry
virtual casacore::DataManagerColumn * makeScalarColumn(const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID)
Create a column in the storage manager on behalf of a table column.
virtual casacore::Bool canAddColumn() const
The storage manager can add columns, which does not really do something.