diff --git a/core-buffer/include/SFWriter.hpp b/core-buffer/include/SFWriter.hpp index c570dd3..b8fd593 100644 --- a/core-buffer/include/SFWriter.hpp +++ b/core-buffer/include/SFWriter.hpp @@ -26,7 +26,7 @@ public: const size_t n_frames, const size_t n_modules); ~SFWriter(); - void write(char* data, std::shared_ptr metadata); + void write(std::shared_ptr metadata, char* data); void close_file(); }; diff --git a/core-buffer/src/SFWriter.cpp b/core-buffer/src/SFWriter.cpp index 6ffc111..3c05c7f 100644 --- a/core-buffer/src/SFWriter.cpp +++ b/core-buffer/src/SFWriter.cpp @@ -70,7 +70,7 @@ void SFWriter::close_file() file_.close(); } -void SFWriter::write(char* data, std::shared_ptr metadata) { +void SFWriter::write(shared_ptr metadata, char* data) { auto pulse_id = metadata->pulse_id; auto frame_index = metadata->frame_index; auto daq_rec = metadata->daq_rec; diff --git a/core-buffer/test/test_SFWriter.cpp b/core-buffer/test/test_SFWriter.cpp index 7c10d44..22b23d3 100644 --- a/core-buffer/test/test_SFWriter.cpp +++ b/core-buffer/test/test_SFWriter.cpp @@ -8,11 +8,21 @@ TEST(SFWriter, basic_interaction) size_t n_modules = 2; size_t n_frames = 5; + RingBuffer ring_buffer(10); + ring_buffer.initialize(MODULE_N_BYTES*n_modules); + auto data = make_unique(n_modules*MODULE_N_BYTES); auto metadata = make_shared(); + metadata->frame_bytes_size = n_modules*MODULE_N_BYTES; + + auto* rb_pointer = ring_buffer.reserve(metadata); + memcpy(rb_pointer, data.get(), n_modules*MODULE_N_BYTES); + ring_buffer.commit(metadata); + + auto rb_data = ring_buffer.read(); SFWriter writer("ignore.h5", n_frames, n_modules); - writer.write(data.get(), metadata); + writer.write(rb_data.first, rb_data.second); writer.close_file(); // TODO: Write some test.