Updates March 2023
This commit is contained in:
@@ -512,6 +512,21 @@ HDF5DataSet::~HDF5DataSet() {
|
||||
if (id >= 0) H5Dclose(id);
|
||||
}
|
||||
|
||||
void HDF5DataSet::ReadDirectChunk(std::vector<uint8_t> &val, const std::vector<hsize_t> &offset) {
|
||||
if (offset.size() != ndim)
|
||||
throw JFJochException(JFJochExceptionCategory::HDF5, "Inconsistent dimension settings");
|
||||
|
||||
hsize_t chunk_bytes;
|
||||
if (H5Dget_chunk_storage_size(id, offset.data(), &chunk_bytes) < 0)
|
||||
throw JFJochException(JFJochExceptionCategory::HDF5, "Error checking chunk size");
|
||||
|
||||
val.resize(chunk_bytes);
|
||||
uint32_t filters;
|
||||
if (H5Dread_chunk(id, H5P_DEFAULT, offset.data(), &filters, val.data()))
|
||||
throw JFJochException(JFJochExceptionCategory::HDF5,
|
||||
"Error reading dataset (with direct chunks) to HDF5 file");
|
||||
}
|
||||
|
||||
|
||||
void RegisterHDF5Filter() {
|
||||
if (H5Zregister(bshuf_H5Filter) < 0)
|
||||
|
||||
Reference in New Issue
Block a user