From 19476fe2f134a8359cd150dbfc2b669a4d942cf7 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Mon, 20 Apr 2020 13:58:15 +0200 Subject: [PATCH] Add CURENT and LATEST --- core-buffer/include/FastH5Writer.hpp | 1 + core-buffer/src/FastH5Writer.cpp | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core-buffer/include/FastH5Writer.hpp b/core-buffer/include/FastH5Writer.hpp index eb1b0fa..df57507 100644 --- a/core-buffer/include/FastH5Writer.hpp +++ b/core-buffer/include/FastH5Writer.hpp @@ -19,6 +19,7 @@ class FastH5Writer { const std::string device_name_; const std::string root_folder_; const std::string latest_filename_; + const std::string current_filename_; std::string current_output_filename_; H5::H5File current_output_file_; diff --git a/core-buffer/src/FastH5Writer.cpp b/core-buffer/src/FastH5Writer.cpp index 905f9ab..ae0387b 100644 --- a/core-buffer/src/FastH5Writer.cpp +++ b/core-buffer/src/FastH5Writer.cpp @@ -25,6 +25,7 @@ FastH5Writer::FastH5Writer( device_name_(device_name), root_folder_(root_folder), latest_filename_(root_folder + "/" + device_name + "/LATEST"), + current_filename_(root_folder + "/" + device_name + "/CURRENT"), frame_bytes_size_(2 * y_frame_size * x_frame_size), current_output_filename_(""), current_output_file_(), @@ -69,10 +70,12 @@ void FastH5Writer::create_file(const string& filename) new_output_file.close(); // Open newly created file. + current_output_filename_ = filename; current_output_file_ = H5::H5File(filename.c_str(), H5F_ACC_RDWR | H5F_ACC_SWMR_WRITE); current_image_dataset_ = current_output_file_.openDataSet("image"); + for (auto& metadata:scalar_metadata_) { auto dataset_name = metadata.first; auto dataset_type = metadata.second; @@ -125,15 +128,17 @@ void FastH5Writer::set_pulse_id(const uint64_t pulse_id) if (new_output_filename != current_output_filename_){ if (current_output_file_.getId() != -1) { + auto latest = current_output_filename_; close_file(); + BufferUtils::update_latest_file( + latest_filename_, latest); } WriterUtils::create_destination_folder(new_output_filename); create_file(new_output_filename); - BufferUtils::update_latest_file( - latest_filename_, current_output_filename_); - current_output_filename_ = new_output_filename; + BufferUtils::update_latest_file( + current_filename_, current_output_filename_); } }