diff --git a/core-buffer/include/ReplayH5Reader.hpp b/core-buffer/include/ReplayH5Reader.hpp index f9df50f..d34beaa 100644 --- a/core-buffer/include/ReplayH5Reader.hpp +++ b/core-buffer/include/ReplayH5Reader.hpp @@ -18,10 +18,11 @@ class ReplayH5Reader { H5::DataSet dset_metadata_; H5::DataSet dset_frame_; - std::unique_ptr frame_buffer = std::make_unique( + std::unique_ptr frame_buffer_ = std::make_unique( core_buffer::MODULE_N_BYTES * core_buffer::REPLAY_READ_BUFFER_SIZE); - std::unique_ptr metadata_buffer = std::make_unique( - sizeof(ModuleFrame) * core_buffer::FILE_MOD); + std::unique_ptr metadata_buffer_ = + std::make_unique(core_buffer::FILE_MOD); + uint64_t buffer_start_pulse_id_ = 0; uint64_t buffer_end_pulse_id_ = 0; void prepare_buffer_for_pulse(const uint64_t pulse_id); diff --git a/core-buffer/src/ReplayH5Reader.cpp b/core-buffer/src/ReplayH5Reader.cpp index 07c1e44..24dc53d 100644 --- a/core-buffer/src/ReplayH5Reader.cpp +++ b/core-buffer/src/ReplayH5Reader.cpp @@ -39,7 +39,7 @@ void ReplayH5Reader::prepare_buffer_for_pulse(const uint64_t pulse_id) hsize_t f_m_start[] = {0, 0}; f_m_space.selectHyperslab(H5S_SELECT_SET, f_m_count, f_m_start); - dset_metadata_.read(&(metadata_buffer[0]), H5::PredType::NATIVE_UINT64, + dset_metadata_.read(&(metadata_buffer_[0]), H5::PredType::NATIVE_UINT64, b_m_space, f_m_space); buffer_start_pulse_id_ = 0; @@ -73,7 +73,7 @@ void ReplayH5Reader::prepare_buffer_for_pulse(const uint64_t pulse_id) hsize_t f_f_start[] = {start_index_in_file, 0, 0}; f_f_space.selectHyperslab(H5S_SELECT_SET, f_f_count, f_f_start); - dset_frame_.read(&(frame_buffer[0]), H5::PredType::NATIVE_UINT16, + dset_frame_.read(&(frame_buffer_[0]), H5::PredType::NATIVE_UINT16, b_f_space, f_f_space); } @@ -104,18 +104,16 @@ bool ReplayH5Reader::get_frame( { prepare_buffer_for_pulse(pulse_id); - auto metadata_buffer_index = BufferUtils::get_file_frame_index(pulse_id); memcpy(metadata, - &(metadata_buffer[metadata_buffer_index]), + &(metadata_buffer_[metadata_buffer_index]), sizeof(ModuleFrame)); auto frame_buffer_index = pulse_id - buffer_start_pulse_id_; memcpy(frame_buffer, - &(frame_buffer[frame_buffer_index]), + &(frame_buffer_[frame_buffer_index * MODULE_N_BYTES]), MODULE_N_BYTES); - if (metadata->pulse_id == 0) { // Signal that there is no frame at this pulse_id. metadata->pulse_id = pulse_id;