From b2cbb68961f75a4c0b5a4b4097fcb11b5dd0bbd2 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Fri, 9 Feb 2018 16:54:53 +0100 Subject: [PATCH] Frame shape is not a vector --- src/ProcessManager.cpp | 10 ++++++---- src/ProcessManager.hpp | 10 ++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/ProcessManager.cpp b/src/ProcessManager.cpp index 5d7f5bd..44c8605 100644 --- a/src/ProcessManager.cpp +++ b/src/ProcessManager.cpp @@ -34,6 +34,7 @@ void ProcessManager::write_h5(WriterManager& manager, const H5Format& format, Ri continue; } + // Write image data. writer.write_frame_data(received_data.first->frame_index, received_data.first->frame_shape, received_data.first->frame_bytes_size, @@ -43,6 +44,9 @@ void ProcessManager::write_h5(WriterManager& manager, const H5Format& format, Ri ring_buffer.release(received_data.first->buffer_slot_index); + // Write header data. + writer.write_data(); + manager.written_frame(received_data.first->frame_index); } @@ -139,7 +143,7 @@ void ProcessManager::receive_zmq(WriterManager& manager, RingBuffer& ring_buffer #endif } -boost::any get_value_from_json(const pt::ptree& json_header, const string& value_name, const HEADER_DATA_TYPE data_type) +boost::any ProcessManager::get_value_from_json(const pt::ptree& json_header, const string& value_name, const HEADER_DATA_TYPE data_type) { switch(data_type) { case UINT8 : @@ -181,10 +185,8 @@ shared_ptr ProcessManager::read_json_header(pt::ptree& json_heade header_data->frame_index = json_header.get("frame"); - uint8_t index = 0; for (const auto& item : json_header.get_child("shape")) { - header_data->frame_shape[index] = item.second.get_value(); - ++index; + header_data->frame_shape.insert(item.second.get_value()); } // Array 1.0 specified little endian as the default encoding. diff --git a/src/ProcessManager.hpp b/src/ProcessManager.hpp index 1d4d678..8b5ba6e 100644 --- a/src/ProcessManager.hpp +++ b/src/ProcessManager.hpp @@ -9,9 +9,15 @@ namespace ProcessManager { void run_writer(WriterManager& manager, const H5Format& format, const std::string& connect_address, uint16_t rest_port); + void receive_zmq(WriterManager& manager, RingBuffer& ring_buffer, const H5Format& format, const std::string& connect_address, int n_io_threads=1, int receive_timeout=-1); + void write_h5(WriterManager& manager, const H5Format& format, RingBuffer& ring_buffer); - std::shared_ptr read_json_header(boost::property_tree::ptree& json_header, const std::string& header, - const std::map& header_data_type); + + std::shared_ptr read_json_header(boost::property_tree::ptree& json_header, + const std::string& header, const std::map& header_data_type); + + boost::any get_value_from_json(const boost::property_tree::ptree& json_header, + const string& value_name, const HEADER_DATA_TYPE data_type); }; \ No newline at end of file