// Copyright (2019-2024) Paul Scherrer Institute #include "HDF5DataFilePluginXFEL.h" void HDF5DataFilePluginXFEL::OpenFile(HDF5File &data_file, const DataMessage &msg) {} void HDF5DataFilePluginXFEL::Write(const DataMessage &msg) { if (!msg.xfel_pulse_id.has_value() || !msg.xfel_event_code.has_value()) return; size_t image_number = msg.number; if (image_number >= pulseid.size()) { max_image_number = image_number; pulseid.resize(image_number + 1); event_code.resize(image_number + 1); } pulseid[image_number] = msg.xfel_pulse_id.value(); event_code[image_number] = msg.xfel_event_code.value(); } void HDF5DataFilePluginXFEL::WriteFinal(HDF5File &data_file) { if (!pulseid.empty()) { HDF5Group group(data_file, "/entry/xfel"); group.NXClass("NXcollection"); group.SaveVector("pulseID", pulseid); group.SaveVector("eventCode", event_code); } }