1 #ifndef DYSCO_STORAGE_MAN_COLUMN_H
2 #define DYSCO_STORAGE_MAN_COLUMN_H
7 #include <casacore/tables/DataMan/StManColumnBase.h>
48 double distributionTruncation) = 0;
133 const unsigned char *data,
167 size_t antennaCount) {
StManColumnBase(int dataType)
Default constructor.
Base class for columns of the DyscoStMan.
DyscoStMan * _storageManager
virtual void InitializeAfterNRowsPerBlockIsKnown()=0
void writeCompressedData(size_t blockIndex, const unsigned char *data, size_t size)
Write a row of compressed data to the stman file.
uint64_t getRowIndex(size_t block) const
uint64_t nBlocksInFile() const
Get the actual number of blocks in the file.
virtual size_t CalculateBlockSize(size_t nRowsInBlock, size_t nAntennae) const =0
virtual void SerializeExtraHeader(std::ostream &stream) const =0
void operator=(const DyscoStManColumn &source)=delete
virtual size_t ExtraHeaderSize() const
Get number of bytes needed for column header of this column.
bool areOffsetsInitialized() const
void readCompressedData(size_t blockIndex, unsigned char *dest, size_t size)
Read a row of compressed data from the stman file.
size_t getRowWithinBlock(uint64_t row) const
void SetOffsetInBlock(size_t offsetInBlock)
virtual void Prepare(DyscoDistribution distribution, Normalization normalization, double studentsTNu, double distributionTruncation)=0
DyscoStManColumn(const DyscoStManColumn &source)=delete
virtual casacore::Bool isWritable() const override
Whether this column is writable.
virtual ~DyscoStManColumn()
Destructor.
DyscoStManColumn(DyscoStMan *parent, int dtype)
Constructor, to be overloaded by subclass.
virtual void UnserializeExtraHeader(std::istream &stream)=0
virtual void shutdown()=0
To be called before destructing the class.
void initializeRowsPerBlock(size_t rowsPerBlock, size_t antennaCount)
size_t OffsetInBlock() const
size_t getBlockIndex(uint64_t row) const
size_t nRowsInBlock() const
DyscoStMan & storageManager() const
Get the storage manager for this column.
The main class for the Dysco storage manager.
void writeCompressedData(size_t blockIndex, const DyscoStManColumn *column, const unsigned char *data, size_t size)
void readCompressedData(size_t blockIndex, const DyscoStManColumn *column, unsigned char *dest, size_t size)
size_t nAntennae() const
Number of antennae used in a time block.
void initializeRowsPerBlock(size_t rowsPerBlock, size_t antennaCount, bool writeToHeader)
To be called by a column once it determines rowsPerBlock and antennaCount.
uint64_t nBlocksInFile() const
The number of rows that are actually stored in the file.
size_t nRowsInBlock() const
Number of rows in one "time-block", i.e.
uint64_t getRowIndex(size_t block) const
Calculate first measurement set row index of a given block index.
size_t getRowWithinBlock(uint64_t row) const
Return the offset of the row within the block.
size_t getBlockIndex(uint64_t row) const
Return index of block that contains the given measurement set row.
bool areOffsetsInitialized() const
This method returns true when the number of rows per block and the number of antennae per block are k...
Contains DyscoStMan and its global register function register_dyscostman().
this file contains all the compiler specific defines
bool Bool
Define the standard types used by Casacore.