From a1573d354f8daaafdeaf1d671cb7f1fd26933afb Mon Sep 17 00:00:00 2001 From: Mohacsi Istvan Date: Mon, 28 Jun 2021 13:53:01 +0200 Subject: [PATCH] std vector seems working --- core-buffer/include/formats.hpp | 11 ++++++----- jfj-combined/include/JfjFrameCache.hpp | 12 ++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/core-buffer/include/formats.hpp b/core-buffer/include/formats.hpp index c461bc3..f8f9ce9 100644 --- a/core-buffer/include/formats.hpp +++ b/core-buffer/include/formats.hpp @@ -4,6 +4,7 @@ #include "buffer_config.hpp" #include "jungfrau.hpp" #include "jungfraujoch.hpp" +#include #pragma pack(push) #pragma pack(1) @@ -41,12 +42,12 @@ struct BufferBinaryFormat { #pragma pack(pop) -struct ImageBinaryFormat { +class ImageBinaryFormat { + public: ImageMetadata meta; - char* data = nullptr; - const size_t size; - ImageBinaryFormat(size_t H, size_t W, size_t D): size(H*W*D) { data = (char*) calloc(H*W*D, sizeof(int)); }; - ~ImageBinaryFormat(){ free(data); std::cout << "ImageBinaryFormat destructor called!" << std::endl; } + std::vector data; + ImageBinaryFormat(size_t H, size_t W, size_t D): data(H*W*D, 0) {}; + ~ImageBinaryFormat(){ std::cout << "ImageBinaryFormat destructor called!" << std::endl; } }; diff --git a/jfj-combined/include/JfjFrameCache.hpp b/jfj-combined/include/JfjFrameCache.hpp index 633e354..af9d02f 100644 --- a/jfj-combined/include/JfjFrameCache.hpp +++ b/jfj-combined/include/JfjFrameCache.hpp @@ -56,17 +56,17 @@ public: std::cout << " fill/cpy" << std::endl; m_fill[idx]++; - //char* ptr_dest = m_buffer[idx].data + moduleIDX * m_blocksize; - char* ptr_dest = m_buffer[idx].data; - // std::cout << " Root: " << (void*)m_buffer[idx].data << " ( " << m_buffer[idx].size << " )" << "\ttarget:" << (void*)ptr_dest << "\tsize: " << m_blocksize << std::endl; - std::cout << "Module: " << moduleIDX << std::endl; + char* ptr_dest = m_buffer[idx].data.data() + moduleIDX * m_blocksize; + //char* ptr_dest = m_buffer[idx].data; + std::cout << " Root: " << (void*)m_buffer[idx].data.data() << "\tTarget:" << (void*)ptr_dest + << "\tblocksize: " << m_blocksize << "\tcontainer: " << m_buffer[idx].data.size() << std::endl; m_buffer[idx].meta.pulse_id = ref_frame.meta.pulse_id; m_buffer[idx].meta.frame_index = ref_frame.meta.frame_index; m_buffer[idx].meta.daq_rec = ref_frame.meta.daq_rec; std::cout << "NI " << std::endl; - //std::memcpy((void*)ptr_dest, (void*)&ref_frame.data, m_blocksize); - std::memcpy((void*)&ptr_dest[moduleIDX * m_blocksize], (void*)&ref_frame.data, m_blocksize); + std::memcpy((void*)ptr_dest, (void*)&ref_frame.data, m_blocksize); + // std::memcpy((void*)&ptr_dest[moduleIDX * m_blocksize], (void*)&ref_frame.data, m_blocksize); std::cout << " Fill ctr: " << m_fill[idx] << std::endl;