1#ifndef CASACORE_ANTENNA_PAIR_STORAGE_MANAGER_H_
2#define CASACORE_ANTENNA_PAIR_STORAGE_MANAGER_H_
4#include <casacore/tables/DataMan/DataManager.h>
6#include <casacore/casa/Containers/Record.h>
15class AntennaPairStManColumn;
53 const String &dataTypeID)
final;
57 throw std::runtime_error(
58 "makeDirArrColumn() called on a AntennaPairStMan. AntennaPairStMan can "
59 "only make scalar columns");
64 throw std::runtime_error(
65 "makeIndArrColumn() called on a AntennaPairStMan. AntennaPairStMan can "
66 "only make scalar columns");
89 std::array<std::unique_ptr<AntennaPairStManColumn>, 2>
columns_;
This class is able to store the combination of ANTENNA1 and ANTENNA2 columns in a compressed manner.
A storage manager that saves the antenna columns with (lossless) compression.
Record dataManagerSpec() const final
Return a record containing data manager specifications.
void create64(rownr_t nRow) final
Let the data manager initialize itself for a new table.
void removeColumn(DataManagerColumn *) final
Remove a column from the data file.
void addColumn(DataManagerColumn *) final
Do the final addition of a column.
rownr_t resync64(rownr_t nRow) final
Resync the data by rereading cached data from the file.
void deleteManager() final
The data manager will be deleted (because all its columns are requested to be deleted).
~AntennaPairStMan() noexcept
Bool flush(AipsIO &, Bool) final
Flush and optionally fsync the data.
String dataManagerType() const final
Return the type name of the data manager (in fact its class name).
AntennaPairStMan(const String &, const Record &)
DataManagerColumn * makeScalarColumn(const String &name, int dataType, const String &dataTypeID) final
Create a column in the data manager on behalf of a table column.
void reopenRW() final
Reopen the storage manager files for read/write.
DataManager * clone() const final
Make a clone of the derived object.
casacore::Bool canAddColumn() const final
Does the data manager allow to add columns? (default no)
AntennaPairStMan(const AntennaPairStMan &source)
The columns are not copied: the new manager will be empty.
std::array< std::unique_ptr< AntennaPairStManColumn >, 2 > columns_
DataManagerColumn * makeDirArrColumn(const String &, int, const String &) final
Create a direct array column.
rownr_t open64(rownr_t nRow, AipsIO &) final
Let the data manager initialize itself for an existing table.
void addRow64(rownr_t nrrow) final
Add rows to the storage manager.
void removeRow64(rownr_t row_nr) final
Delete a row from all columns.
static DataManager * makeObject(const String &name, const Record &spec)
DataManagerColumn * makeIndArrColumn(const String &, int, const String &) final
Create an indirect array column.
Abstract base class for a data manager.
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.