Write single file option enabled. Minor issues:
Build Packages / build:rpm (rocky8_nocuda) (push) Failing after 6m2s
Build Packages / build:rpm (rocky9_nocuda) (push) Failing after 7m30s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Failing after 8m18s
Build Packages / DIALS processing test (push) Failing after 0s
Build Packages / build:rpm (rocky8_sls9) (push) Failing after 8m45s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Failing after 8m52s
Build Packages / Generate python client (push) Successful in 2m0s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (push) Failing after 10m28s
Build Packages / Build documentation (push) Successful in 2m27s
Build Packages / build:rpm (rocky9) (push) Failing after 11m35s
Build Packages / build:rpm (rocky8) (push) Failing after 11m47s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 7m45s
Build Packages / build:rpm (ubuntu2404) (push) Failing after 6m16s
Build Packages / Unit tests (push) Successful in 56m23s

1. What if write_master_file = false
2. Finalized file statistics use wrong name
This commit is contained in:
2026-03-30 12:29:36 +02:00
parent 6639b584ec
commit 7570794a60
12 changed files with 440 additions and 44 deletions
+6 -6
View File
@@ -77,7 +77,7 @@ std::optional<HDF5DataFileStatistics> HDF5DataFile::Close() {
}
data_file.reset();
if (!std::filesystem::exists(filename.c_str()) || overwrite)
if (manage_file && (!std::filesystem::exists(filename.c_str()) || overwrite))
std::rename(tmp_filename.c_str(), filename.c_str());
closed = true;
@@ -102,7 +102,7 @@ HDF5DataFile::~HDF5DataFile() {
}
}
void HDF5DataFile::CreateFile(const DataMessage& msg) {
void HDF5DataFile::CreateFile(const DataMessage& msg, std::shared_ptr<HDF5File> in_data_file) {
HDF5Dcpl dcpl;
HDF5DataType data_type(msg.image.GetMode());
@@ -130,7 +130,7 @@ void HDF5DataFile::CreateFile(const DataMessage& msg) {
break;
}
data_file = std::make_unique<HDF5File>(tmp_filename);
data_file = in_data_file;
HDF5Group(*data_file, "/entry").NXClass("NXentry");
HDF5Group(*data_file, "/entry/data").NXClass("NXdata");
@@ -149,11 +149,10 @@ void HDF5DataFile::Write(const DataMessage &msg, uint64_t image_number) {
if (image_number >= images_per_file)
throw JFJochException(JFJochExceptionCategory::FileWriteError,
"Image number out of bounds");
bool new_file = false;
if (!data_file) {
CreateFile(msg);
new_file = true;
manage_file = true;
CreateFile(msg, std::make_shared<HDF5File>(tmp_filename));
}
if (new_file || (static_cast<int64_t>(image_number) > max_image_number)) {
@@ -161,6 +160,7 @@ void HDF5DataFile::Write(const DataMessage &msg, uint64_t image_number) {
timestamp.resize(max_image_number + 1);
exptime.resize(max_image_number + 1);
number.resize(max_image_number + 1);
new_file = false;
}
nimages++;