casacore
|
Abstract base class for a data manager. More...
#include <DataManager.h>
Public Member Functions | |
DataManager () | |
Default constructor. More... | |
virtual | ~DataManager () |
virtual DataManager * | clone () const =0 |
Make a clone of the derived object. More... | |
virtual String | dataManagerName () const |
Return the name of the data manager. More... | |
virtual String | dataManagerType () const =0 |
Return the type name of the data manager (in fact its class name). More... | |
void | dataManagerInfo (Record &info) const |
Add SEQNR and SPEC (the DataManagerSpec subrecord) to the info. More... | |
virtual Record | dataManagerSpec () const |
Return a record containing data manager specifications. More... | |
virtual Record | getProperties () const |
Get data manager properties that can be modified. More... | |
virtual void | setProperties (const Record &spec) |
Modify data manager properties given in record fields. More... | |
virtual Bool | isStorageManager () const |
Is the data manager a storage manager? The default is yes. More... | |
virtual Bool | canReallocateColumns () const |
Tell if the data manager wants to reallocate the data manager column objects. More... | |
virtual DataManagerColumn * | reallocateColumn (DataManagerColumn *column) |
Reallocate the column object if it is part of this data manager. More... | |
uInt | sequenceNr () const |
Get the (unique) sequence nr of this data manager. More... | |
uInt | ncolumn () const |
Get the nr of columns in this data manager (can be zero). More... | |
Bool | asBigEndian () const |
Have the data to be stored in big or little endian canonical format? More... | |
const TSMOption & | tsmOption () const |
Get the TSM option. More... | |
MultiFileBase * | multiFile () |
Get the MultiFile pointer (can be 0). More... | |
String | keywordName (const String &keyword) const |
Compose a keyword name from the given keyword appended with the sequence number (e.g. More... | |
String | fileName () const |
Compose a unique filename from the table name and sequence number. More... | |
ByteIO::OpenOption | fileOption () const |
Get the AipsIO option of the underlying file. More... | |
virtual Bool | isRegular () const |
Is this a regular storage manager? It is regular if it allows addition of rows and writing data in them. More... | |
Table & | table () const |
Get the table this object is associated with. More... | |
virtual void | reopenRW () |
Reopen the data manager for read/write access. More... | |
virtual Bool | canAddRow () const |
Does the data manager allow to add rows? (default no) More... | |
virtual Bool | canRemoveRow () const |
Does the data manager allow to delete rows? (default no) More... | |
virtual Bool | canAddColumn () const |
Does the data manager allow to add columns? (default no) More... | |
virtual Bool | canRemoveColumn () const |
Does the data manager allow to delete columns? (default no) More... | |
virtual Bool | canRenameColumn () const |
Does the data manager allow to rename columns? (default yes) More... | |
virtual void | setMaximumCacheSize (uInt nMiB) |
Set the maximum cache size (in bytes) to be used by a storage manager. More... | |
virtual void | showCacheStatistics (std::ostream &) const |
Show the data manager's IO statistics. More... | |
DataManagerColumn * | createScalarColumn (const String &columnName, int dataType, const String &dataTypeId) |
Create a column in the data manager on behalf of a table column. More... | |
DataManagerColumn * | createDirArrColumn (const String &columnName, int dataType, const String &dataTypeId) |
Create a direct array column. More... | |
DataManagerColumn * | createIndArrColumn (const String &columnName, int dataType, const String &dataTypeId) |
Create an indirect array column. More... | |
virtual void | deleteManager ()=0 |
The data manager will be deleted (because all its columns are requested to be deleted). More... | |
DataManager * | getClone () const |
Has the object already been cloned? More... | |
void | setClone (DataManager *clone) const |
Set the pointer to the clone. More... | |
Static Public Member Functions | |
static void | registerCtor (const String &type, DataManagerCtor func) |
Register a mapping of a data manager type to its static construction function. More... | |
static DataManagerCtor | getCtor (const String &dataManagerType) |
Get the "constructor" of a data manager (thread-safe). More... | |
static Bool | isRegistered (const String &dataManagerType) |
Test if a data manager is registered (thread-safe). More... | |
static DataManager * | unknownDataManager (const String &dataManagerType, const Record &spec) |
Serve as default function for theirRegisterMap, which catches all unknown data manager types. More... | |
Static Public Attributes | |
static rownr_t | MAXROWNR32 |
Define the highest row number that can be represented as signed 32-bit. More... | |
Protected Member Functions | |
void | decrementNcolumn () |
Decrement number of columns (in case a column is deleted). More... | |
void | setEndian (Bool bigEndian) |
Tell the data manager if big or little endian format is needed. More... | |
void | setTsmOption (const TSMOption &tsmOption) |
Tell the data manager which TSM option to use. More... | |
void | setMultiFile (MultiFileBase *mfile) |
Tell the data manager that MultiFile can be used. More... | |
virtual Bool | hasMultiFileSupport () const |
Does the data manager support use of MultiFile? A derived class has to return True if it can use the MultiFile. More... | |
void | throwDataTypeOther (const String &columnName, int dataType) const |
Throw an exception in case data type is TpOther, because the storage managers (and maybe other data managers) do not support such columns. More... | |
Private Member Functions | |
DataManager (const DataManager &) | |
The copy constructor cannot be used for this base class. More... | |
DataManager & | operator= (const DataManager &) |
Assignment cannot be used for this base class. More... | |
virtual DataManagerColumn * | makeScalarColumn (const String &columnName, int dataType, const String &dataTypeId)=0 |
Create a column in the data manager on behalf of a table column. More... | |
virtual DataManagerColumn * | makeDirArrColumn (const String &columnName, int dataType, const String &dataTypeId)=0 |
Create a direct array column. More... | |
virtual DataManagerColumn * | makeIndArrColumn (const String &columnName, int dataType, const String &dataTypeId)=0 |
Create an indirect array column. More... | |
void | checkDataType (const DataManagerColumn *colPtr, const String &columnName, int dataType, const String &dataTypeId) const |
Check if the data type of the created data manager column is correct. More... | |
virtual void | addRow64 (rownr_t nrrow) |
Add rows to all columns. More... | |
virtual void | removeRow64 (rownr_t rownr) |
Delete a row from all columns. More... | |
virtual void | addColumn (DataManagerColumn *) |
Add a column. More... | |
virtual void | removeColumn (DataManagerColumn *) |
Delete a column. More... | |
void | setSeqnr (uInt nr) |
Set the sequence number of this data manager. More... | |
void | linkToTable (Table &tab) |
Link the data manager to the Table object. More... | |
virtual Bool | flush (AipsIO &ios, Bool fsync)=0 |
Flush and optionally fsync the data. More... | |
virtual void | create64 (rownr_t nrrow) |
Let the data manager initialize itself for a new table. More... | |
virtual rownr_t | open64 (rownr_t nrrow, AipsIO &ios) |
Let the data manager initialize itself for an existing table. More... | |
virtual rownr_t | resync64 (rownr_t nrrow) |
Resync the data by rereading cached data from the file. More... | |
virtual void | prepare () |
Let the data manager initialize itself further. More... | |
virtual void | addRow (uInt nrrow) |
Backward compatibility function using uInt instead of rownr_t. More... | |
virtual void | removeRow (uInt rownr) |
virtual void | create (uInt nrrow) |
virtual void | open (uInt nrrow, AipsIO &ios) |
virtual uInt | open1 (uInt nrrow, AipsIO &ios) |
virtual void | resync (uInt nrrow) |
virtual uInt | resync1 (uInt nrrow) |
Static Private Member Functions | |
static std::map< String, DataManagerCtor > | initRegisterMap () |
Register the main data managers. More... | |
Private Attributes | |
uInt | nrcol_p |
uInt | seqnr_p |
Bool | asBigEndian_p |
TSMOption | tsmOption_p |
MultiFileBase * | multiFile_p |
Table * | table_p |
DataManager * | clone_p |
Static Private Attributes | |
static std::map< String, DataManagerCtor > | theirRegisterMap |
Declare the mapping of the data manager type name to a static "makeObject" function. More... | |
static std::recursive_mutex | theirMutex |
Friends | |
class | SetupNewTable |
class | ColumnSet |
Abstract base class for a data manager.
Internal
DataManager is the abstract base class for all kind of table data managers.
The DataManager class structure is shown in this UML diagram. There are currently 2 classes of data managers:
DataManager contains some common data and defines several virtual functions, which usually have to be implemented in the derived classes. It also contains some helper functions for the derived classes (like fileName().
The actual handling of a column by the data manager is defined in the abstract base class DataManagerColumn. Each data manager must have an associated class (derived from DataManagerColumn) to handle the columns.
There is a protocol defined how a data manager is created and initialized. For a new table it is:
For an existing table the procedure is slightly different:
Table tab("name.data");
will create a table object for an existing table. This has the effect that the given table file will be read to reconstruct the Table object and the data managers. bitflagsengine
for data manager BitFlagsEngine<Int>
). It can be preceeded by lib or libcasa_ and followed by.so or.dylib. The shared library has to have a function with a name like register_bitflagsengine
that must register the data manager(s). The function must be declared as extern "C"
, otherwise its name gets mangled. An abstract base class is needed to support data managers and virtual column engines in the table system in a transparant way.
Definition at line 220 of file DataManager.h.
casacore::DataManager::DataManager | ( | ) |
Default constructor.
|
virtual |
|
private |
The copy constructor cannot be used for this base class.
The clone function should be used instead. The private declaration of this constructor makes it unusable.
|
privatevirtual |
Add a column.
The default implementation throws a "not possible" exception.
Reimplemented in casacore::ForwardColumnEngine, dyscostman::DyscoStMan, casacore::SSMBase, casacore::ISMBase, casacore::DerivedMSCal, and casacore::MSMBase.
|
privatevirtual |
Backward compatibility function using uInt instead of rownr_t.
The default implementations throw an exception.
|
privatevirtual |
Add rows to all columns.
The default implementation calls the uInt version.
Reimplemented in casacore::ForwardColumnEngine, casacore::TiledDataStMan, casacore::SSMBase, casacore::BaseMappedArrayEngine< VirtualType, StoredType >, casacore::BaseMappedArrayEngine< Complex, Int >, casacore::BaseMappedArrayEngine< Float, Short >, casacore::BaseMappedArrayEngine< Bool, StoredType >, casacore::ISMBase, casacore::TiledShapeStMan, casacore::TiledCellStMan, casacore::TiledColumnStMan, casacore::MSMBase, casacore::VirtualColumnEngine, and casacore::Adios2StMan.
|
inline |
Have the data to be stored in big or little endian canonical format?
Definition at line 289 of file DataManager.h.
References asBigEndian_p.
|
virtual |
Does the data manager allow to add columns? (default no)
Reimplemented in casacore::ForwardColumnEngine, casacore::SSMBase, casacore::ISMBase, dyscostman::DyscoStMan, casacore::DerivedMSCal, and casacore::MSMBase.
|
virtual |
Does the data manager allow to add rows? (default no)
Reimplemented in casacore::ForwardColumnEngine, casacore::TiledStMan, casacore::SSMBase, casacore::ISMBase, dyscostman::DyscoStMan, casacore::VirtualColumnEngine, and casacore::MSMBase.
|
virtual |
Tell if the data manager wants to reallocate the data manager column objects.
This is used by the tiling storage manager. By default it returns False.
Reimplemented in casacore::TiledStMan, and casacore::MSMBase.
|
virtual |
Does the data manager allow to delete columns? (default no)
Reimplemented in casacore::ForwardColumnEngine, casacore::SSMBase, dyscostman::DyscoStMan, casacore::ISMBase, casacore::DerivedMSCal, and casacore::MSMBase.
|
virtual |
Does the data manager allow to delete rows? (default no)
Reimplemented in casacore::ForwardColumnEngine, casacore::SSMBase, casacore::ISMBase, dyscostman::DyscoStMan, casacore::VirtualColumnEngine, and casacore::MSMBase.
|
virtual |
Does the data manager allow to rename columns? (default yes)
|
private |
Check if the data type of the created data manager column is correct.
|
pure virtual |
Make a clone of the derived object.
Implemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::CompressComplexSD, casacore::ForwardColumnEngine, casacore::TiledDataStMan, casacore::ForwardColumnIndexedRowEngine, casacore::BitFlagsEngine< StoredType >, casacore::ScaledComplexData< VirtualType, StoredType >, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::StManAipsIO, casacore::TiledShapeStMan, casacore::CompressComplex, casacore::CompressFloat, casacore::TiledCellStMan, casacore::TiledColumnStMan, casacore::SSMBase, casacore::MappedArrayEngine< VirtualType, StoredType >, dyscostman::DyscoStMan, casacore::DerivedMSCal, casacore::ISMBase, casacore::VirtualTaQLColumn, casacore::TiledFileHelper, casacore::MSMBase, and casacore::Adios2StMan.
Referenced by setClone().
|
privatevirtual |
|
privatevirtual |
Let the data manager initialize itself for a new table.
The default implementation calls the uInt version.
Reimplemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::ForwardColumnEngine, casacore::CompressComplexSD, casacore::TiledDataStMan, casacore::ForwardColumnIndexedRowEngine, casacore::BaseMappedArrayEngine< VirtualType, StoredType >, casacore::BaseMappedArrayEngine< Complex, Int >, casacore::BaseMappedArrayEngine< Float, Short >, casacore::BaseMappedArrayEngine< Bool, StoredType >, casacore::SSMBase, casacore::TiledShapeStMan, casacore::BitFlagsEngine< StoredType >, casacore::ISMBase, casacore::StManAipsIO, casacore::TiledCellStMan, casacore::ScaledComplexData< VirtualType, StoredType >, casacore::TiledColumnStMan, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::CompressComplex, casacore::CompressFloat, casacore::VirtualColumnEngine, casacore::VirtualTaQLColumn, casacore::MSMBase, casacore::TiledFileHelper, and casacore::Adios2StMan.
DataManagerColumn* casacore::DataManager::createDirArrColumn | ( | const String & | columnName, |
int | dataType, | ||
const String & | dataTypeId | ||
) |
Create a direct array column.
DataManagerColumn* casacore::DataManager::createIndArrColumn | ( | const String & | columnName, |
int | dataType, | ||
const String & | dataTypeId | ||
) |
Create an indirect array column.
DataManagerColumn* casacore::DataManager::createScalarColumn | ( | const String & | columnName, |
int | dataType, | ||
const String & | dataTypeId | ||
) |
Create a column in the data manager on behalf of a table column.
It calls makeXColumn and checks the data type.
Create a scalar column. The dataTypeId
argument is gives the id (i.e. name) of the data type of the column. It is only used for virtual columns of a non-standard data type to be able to check if the correctness of the column data type.
Storage managers only handle standard data types and can readily ignore this argument.
void casacore::DataManager::dataManagerInfo | ( | Record & | info | ) | const |
Add SEQNR and SPEC (the DataManagerSpec subrecord) to the info.
|
virtual |
Return the name of the data manager.
This is the name of this instantiation of the data manager, thus not its type name. By default it returns an empty string.
Reimplemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::ForwardColumnEngine, casacore::BitFlagsEngine< StoredType >, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::SSMBase, casacore::CompressComplex, casacore::CompressFloat, dyscostman::DyscoStMan, casacore::MappedArrayEngine< VirtualType, StoredType >, casacore::TiledStMan, casacore::ISMBase, casacore::MSMBase, and casacore::Adios2StMan.
Referenced by casacore::RODataManAccessor::dataManagerName().
|
virtual |
Return a record containing data manager specifications.
The default implementation returns an empty record.
Reimplemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::ForwardColumnEngine, casacore::ForwardColumnIndexedRowEngine, casacore::BitFlagsEngine< StoredType >, casacore::TiledShapeStMan, casacore::ScaledComplexData< VirtualType, StoredType >, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::SSMBase, casacore::CompressComplex, casacore::CompressFloat, dyscostman::DyscoStMan, casacore::DerivedMSCal, casacore::MappedArrayEngine< VirtualType, StoredType >, casacore::TiledStMan, casacore::ISMBase, casacore::VirtualTaQLColumn, and casacore::Adios2StMan.
|
pure virtual |
Return the type name of the data manager (in fact its class name).
It has to be a unique name, thus if the class is templated the template parameter has to be part of the name. This is used by the open/flush mechanism to be able to reconstruct the correct data manager.
Implemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::CompressComplexSD, casacore::ForwardColumnEngine, casacore::TiledDataStMan, casacore::ForwardColumnIndexedRowEngine, casacore::VACEngine< T >, casacore::VSCEngine< T >, casacore::StManAipsIO, casacore::BitFlagsEngine< StoredType >, casacore::TiledShapeStMan, casacore::ScaledComplexData< VirtualType, StoredType >, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::TiledCellStMan, casacore::TiledColumnStMan, casacore::SSMBase, casacore::CompressComplex, casacore::CompressFloat, dyscostman::DyscoStMan, casacore::DerivedMSCal, casacore::MappedArrayEngine< VirtualType, StoredType >, casacore::VirtualTaQLColumn, casacore::ISMBase, casacore::MSMBase, casacore::TiledFileHelper, and casacore::Adios2StMan.
Referenced by casacore::RODataManAccessor::dataManagerType().
|
inlineprotected |
Decrement number of columns (in case a column is deleted).
Definition at line 379 of file DataManager.h.
References nrcol_p.
|
pure virtual |
The data manager will be deleted (because all its columns are requested to be deleted).
So clean up the things needed (e.g. delete files).
Implemented in dyscostman::DyscoStMan, casacore::SSMBase, casacore::TiledStMan, casacore::ISMBase, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::MSMBase, and casacore::Adios2StMan.
String casacore::DataManager::fileName | ( | ) | const |
Compose a unique filename from the table name and sequence number.
Referenced by casacore::Adios2StMan::impl::fileName().
ByteIO::OpenOption casacore::DataManager::fileOption | ( | ) | const |
Get the AipsIO option of the underlying file.
Flush and optionally fsync the data.
The AipsIO stream represents the main table file and can be used by virtual column engines to store SMALL amounts of data. It returns a True status if it had to flush (i.e. if data have changed).
Implemented in casacore::TiledDataStMan, dyscostman::DyscoStMan, casacore::SSMBase, casacore::TiledShapeStMan, casacore::ISMBase, casacore::StManAipsIO, casacore::TiledCellStMan, casacore::TiledColumnStMan, casacore::VirtualColumnEngine, casacore::MSMBase, casacore::TiledFileHelper, and casacore::Adios2StMan.
|
inline |
Has the object already been cloned?
Definition at line 528 of file DataManager.h.
References clone_p.
|
static |
Get the "constructor" of a data manager (thread-safe).
|
virtual |
Get data manager properties that can be modified.
It is a subset of the data manager specification. The default implementation returns an empty record.
Reimplemented in casacore::BitFlagsEngine< StoredType >, casacore::SSMBase, casacore::TiledStMan, and casacore::ISMBase.
|
protectedvirtual |
Does the data manager support use of MultiFile? A derived class has to return True if it can use the MultiFile.
The default implementation returns False.
Reimplemented in casacore::SSMBase, casacore::ISMBase, and casacore::TiledStMan.
|
staticprivate |
Register the main data managers.
Test if a data manager is registered (thread-safe).
|
virtual |
Is this a regular storage manager? It is regular if it allows addition of rows and writing data in them.
The default implementation returns True.
|
virtual |
Is the data manager a storage manager? The default is yes.
Reimplemented in casacore::VirtualColumnEngine.
Compose a keyword name from the given keyword appended with the sequence number (e.g.
key_0). This makes the keyword name unique if multiple data managers are used with the same type.
|
private |
|
privatepure virtual |
Create a direct array column.
Implemented in casacore::SSMBase, dyscostman::DyscoStMan, casacore::TiledStMan, casacore::VACEngine< T >, casacore::ISMBase, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::MSMBase, and casacore::Adios2StMan.
|
privatepure virtual |
Create an indirect array column.
Implemented in casacore::ForwardColumnEngine, casacore::SSMBase, dyscostman::DyscoStMan, casacore::ForwardColumnIndexedRowEngine, casacore::TiledStMan, casacore::VACEngine< T >, casacore::ISMBase, casacore::BaseMappedArrayEngine< VirtualType, StoredType >, casacore::BaseMappedArrayEngine< Complex, Int >, casacore::BaseMappedArrayEngine< Float, Short >, casacore::BaseMappedArrayEngine< Bool, StoredType >, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::DerivedMSCal, casacore::VirtualTaQLColumn, casacore::MSMBase, and casacore::Adios2StMan.
|
privatepure virtual |
Create a column in the data manager on behalf of a table column.
Create a scalar column.
Implemented in casacore::ForwardColumnEngine, casacore::SSMBase, dyscostman::DyscoStMan, casacore::ForwardColumnIndexedRowEngine, casacore::TiledStMan, casacore::VSCEngine< T >, casacore::ISMBase, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::DerivedMSCal, casacore::VirtualTaQLColumn, casacore::MSMBase, and casacore::Adios2StMan.
|
inline |
Get the MultiFile pointer (can be 0).
Definition at line 297 of file DataManager.h.
References multiFile_p.
|
inline |
Get the nr of columns in this data manager (can be zero).
Definition at line 285 of file DataManager.h.
References nrcol_p.
Referenced by casacore::Adios2StMan::impl::ncolumn().
Let the data manager initialize itself for an existing table.
The AipsIO stream represents the main table file and must be used by virtual column engines to retrieve the data stored in the flush function.
The data manager returns 0 or the nr of rows it thinks there are. This is particularly useful for data managers like LofarStMan whose data are written outside the table system, thus for which no rows have been added.
The default implementation calls the uInt version of open and open1.
Reimplemented in casacore::SSMBase, casacore::TiledStMan, casacore::ISMBase, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::MSMBase, and casacore::Adios2StMan.
|
private |
Assignment cannot be used for this base class.
The private declaration of this operator makes it unusable.
|
privatevirtual |
Let the data manager initialize itself further.
Prepare is called after create/open has been called for all columns. In this way one can be sure that referenced columns are read back and partly initialized. The default implementation does nothing.
Reimplemented in casacore::RetypedArrayEngine< VirtualType, StoredType >, casacore::ForwardColumnEngine, dyscostman::DyscoStMan, casacore::ForwardColumnIndexedRowEngine, casacore::BaseMappedArrayEngine< VirtualType, StoredType >, casacore::BaseMappedArrayEngine< Complex, Int >, casacore::BaseMappedArrayEngine< Float, Short >, casacore::BaseMappedArrayEngine< Bool, StoredType >, casacore::BitFlagsEngine< StoredType >, casacore::ScaledComplexData< VirtualType, StoredType >, casacore::ScaledArrayEngine< VirtualType, StoredType >, casacore::CompressComplex, casacore::CompressFloat, casacore::VirtualColumnEngine, casacore::VirtualTaQLColumn, casacore::DerivedMSCal, and casacore::MSMBase.
|
virtual |
Reallocate the column object if it is part of this data manager.
It returns a pointer to the new column object. This function is used by the tiling storage manager. By default it does nothing and returns the input pointer.
Reimplemented in casacore::TiledStMan, and casacore::MSMBase.
|
static |
Register a mapping of a data manager type to its static construction function.
It is fully thread-safe.
|
privatevirtual |
Delete a column.
The default implementation throws a "not possible" exception.
Reimplemented in casacore::ForwardColumnEngine, dyscostman::DyscoStMan, casacore::SSMBase, casacore::ISMBase, casacore::DerivedMSCal, and casacore::MSMBase.
|
privatevirtual |
|
privatevirtual |
Delete a row from all columns.
The default implementation calls the uInt version.
Reimplemented in casacore::ForwardColumnEngine, casacore::SSMBase, casacore::ISMBase, casacore::MSMBase, and casacore::VirtualColumnEngine.
|
virtual |
Reopen the data manager for read/write access.
By default it is assumed that a reopen for read/write does not have to do anything.
Reimplemented in casacore::ForwardColumnEngine, dyscostman::DyscoStMan, casacore::ForwardColumnIndexedRowEngine, casacore::SSMBase, casacore::TiledStMan, casacore::ISMBase, casacore::StManAipsIO, casacore::CompressComplex, and casacore::CompressFloat.
|
privatevirtual |
Resync the data by rereading cached data from the file.
This is called when a lock is acquired on the file and it appears that data in this data manager has been changed by another process.
The data manager returns 0 or the number of rows it thinks there are. This is particularly useful for data managers like LofarStMan whose data are written outside the table system, thus for which no rows have been added.
The default implementation calls the uInt version of resync and resync1.
Reimplemented in casacore::SSMBase, casacore::TiledStMan, casacore::ISMBase, casacore::StManAipsIO, casacore::VirtualColumnEngine, casacore::MSMBase, and casacore::Adios2StMan.
|
inline |
Get the (unique) sequence nr of this data manager.
Definition at line 281 of file DataManager.h.
References seqnr_p.
Referenced by casacore::RODataManAccessor::dataManagerSeqNr().
|
inline |
Set the pointer to the clone.
Definition at line 532 of file DataManager.h.
|
inlineprotected |
Tell the data manager if big or little endian format is needed.
Definition at line 383 of file DataManager.h.
References asBigEndian_p.
|
virtual |
Set the maximum cache size (in bytes) to be used by a storage manager.
The default implementation does nothing.
Reimplemented in casacore::TiledStMan.
|
protected |
|
virtual |
Modify data manager properties given in record fields.
Only the properties as returned by getProperties are used, others are ignored. The default implementation does nothing.
Reimplemented in casacore::BitFlagsEngine< StoredType >, casacore::SSMBase, casacore::TiledStMan, and casacore::ISMBase.
|
inlineprivate |
Set the sequence number of this data manager.
Definition at line 464 of file DataManager.h.
References seqnr_p.
|
protected |
Tell the data manager which TSM option to use.
|
virtual |
Show the data manager's IO statistics.
By default it does nothing.
Referenced by casacore::RODataManAccessor::showCacheStatistics().
|
inline |
Get the table this object is associated with.
Definition at line 318 of file DataManager.h.
References table_p.
|
protected |
Throw an exception in case data type is TpOther, because the storage managers (and maybe other data managers) do not support such columns.
|
inline |
|
static |
Serve as default function for theirRegisterMap, which catches all unknown data manager types.
|
friend |
Definition at line 223 of file DataManager.h.
|
friend |
Definition at line 222 of file DataManager.h.
|
private |
Definition at line 408 of file DataManager.h.
Referenced by asBigEndian(), and setEndian().
|
mutableprivate |
Definition at line 412 of file DataManager.h.
Referenced by getClone(), and setClone().
|
static |
Define the highest row number that can be represented as signed 32-bit.
In principle it is the maximum uInt number, but for test purposes it can be reset (to a lower number).
Definition at line 556 of file DataManager.h.
|
private |
Definition at line 410 of file DataManager.h.
Referenced by multiFile().
|
private |
Definition at line 406 of file DataManager.h.
Referenced by decrementNcolumn(), and ncolumn().
|
private |
Definition at line 407 of file DataManager.h.
Referenced by sequenceNr(), and setSeqnr().
|
private |
Definition at line 411 of file DataManager.h.
Referenced by table().
|
staticprivate |
Definition at line 524 of file DataManager.h.
|
staticprivate |
Declare the mapping of the data manager type name to a static "makeObject" function.
Definition at line 523 of file DataManager.h.
|
private |
Definition at line 409 of file DataManager.h.
Referenced by tsmOption().