From b98eee5b9a747eb27524ebdd17d9c98aa8a0780c Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 16 Sep 2021 10:09:30 +0200 Subject: [PATCH] works with hdf5 --- slsReceiverSoftware/src/HDF5MasterFile.cpp | 9 ++++----- slsReceiverSoftware/src/HDF5MasterFile.h | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/slsReceiverSoftware/src/HDF5MasterFile.cpp b/slsReceiverSoftware/src/HDF5MasterFile.cpp index f525a25e2..eb9b69e73 100644 --- a/slsReceiverSoftware/src/HDF5MasterFile.cpp +++ b/slsReceiverSoftware/src/HDF5MasterFile.cpp @@ -117,7 +117,9 @@ void HDF5MasterFile::CreateMasterFile(const std::string filePath, Group group5(group3.createGroup("detector")); Group group6(group1.createGroup("sample")); - groupId_ = group5.getId(); + // TODO find a way to get complete group link + attrGroupName_ = "/entry/instrument/detector"; + attr->WriteMasterHDF5Attributes(fd_, &group5); fd_->close(); @@ -137,15 +139,12 @@ void HDF5MasterFile::UpdateMasterFile(MasterAttributes *attr, bool silentMode) { try { Exception::dontPrint(); // to handle errors - FileAccPropList flist; flist.setFcloseDegree(H5F_CLOSE_STRONG); fd_ = new H5File(fileName_.c_str(), H5F_ACC_RDWR, FileCreatPropList::DEFAULT, flist); - Group group(groupId_); - - // cannot do this TODO + Group group = fd_->openGroup(attrGroupName_.c_str()); attr->WriteFinalHDF5Attributes(fd_, &group); fd_->close(); diff --git a/slsReceiverSoftware/src/HDF5MasterFile.h b/slsReceiverSoftware/src/HDF5MasterFile.h index 1dcbd70b5..01b5bfb45 100644 --- a/slsReceiverSoftware/src/HDF5MasterFile.h +++ b/slsReceiverSoftware/src/HDF5MasterFile.h @@ -25,5 +25,5 @@ class HDF5MasterFile : private virtual slsDetectorDefs, public File { std::mutex *hdf5Lib_; H5File *fd_{nullptr}; std::string fileName_; - hid_t groupId_{0}; + std::string attrGroupName_; }; \ No newline at end of file