From 9f4175bc9de1132d33ad09b382b7198a0d3b22ab Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Sun, 19 Apr 2020 23:37:02 +0200 Subject: [PATCH] Add implementation of writing scalar metadata --- core-buffer/include/FastH5Writer.hpp | 6 ++++-- core-buffer/src/FastH5Writer.cpp | 15 ++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core-buffer/include/FastH5Writer.hpp b/core-buffer/include/FastH5Writer.hpp index d351317..a34136c 100644 --- a/core-buffer/include/FastH5Writer.hpp +++ b/core-buffer/include/FastH5Writer.hpp @@ -50,8 +50,10 @@ public: void set_pulse_id(const uint64_t pulse_id); void write_data(const char* buffer); - template void write_scalar_metadata( - const std::string& name, const T* value); + void write_scalar_metadata( + const std::string& name, + const void* value, + const size_t value_n_bytes); }; diff --git a/core-buffer/src/FastH5Writer.cpp b/core-buffer/src/FastH5Writer.cpp index b08be91..8fdf769 100644 --- a/core-buffer/src/FastH5Writer.cpp +++ b/core-buffer/src/FastH5Writer.cpp @@ -4,6 +4,7 @@ #include #include #include +#include extern "C" { @@ -109,7 +110,6 @@ void FastH5Writer::set_pulse_id(const uint64_t pulse_id) latest_filename_, new_output_filename); current_output_filename_ = new_output_filename; - } } @@ -144,11 +144,16 @@ void FastH5Writer::write_data(const char *buffer) } } -template void FastH5Writer::write_scalar_metadata( - const std::string& name, const T* value) +void FastH5Writer::write_scalar_metadata( + const std::string& name, + const void* value, + const size_t value_n_bytes) { - auto buffer_ptr = buffers_.at(name); - buffer_ptr.get()[current_frame_index_] = value; + char* buffer_ptr = (buffers_.at(name)).get(); + ::memcpy( + buffer_ptr+(current_frame_index_*value_n_bytes), + value, + value_n_bytes); } template <>