diff --git a/src/ZmqReceiver.cpp b/src/ZmqReceiver.cpp index 9799651..4f8cd6b 100644 --- a/src/ZmqReceiver.cpp +++ b/src/ZmqReceiver.cpp @@ -202,7 +202,7 @@ void copy_value_to_buffer(char* buffer, const size_t offset, const pt::ptree& js } } -shared_ptr ZmqReceiver::get_value_from_json(const pt::ptree& json_header, const string& name, const HeaderDataType& header_data_type) const +shared_ptr get_value_from_json(const pt::ptree& json_header, const string& name, const HeaderDataType& header_data_type) { char* buffer = new char[header_data_type.value_bytes_size * header_data_type.value_shape]; @@ -214,7 +214,7 @@ shared_ptr ZmqReceiver::get_value_from_json(const pt::ptree& json_header, for (const auto& item : json_header.get_child(name)) { auto offset = index * header_data_type.value_bytes_size; - copy_value_to_buffer(buffer, offset, json_header.get_child(name), header_data_type); + copy_value_to_buffer(buffer, offset, item.second, header_data_type); ++index; } diff --git a/src/ZmqReceiver.hpp b/src/ZmqReceiver.hpp index 836c738..4d9ad9b 100644 --- a/src/ZmqReceiver.hpp +++ b/src/ZmqReceiver.hpp @@ -23,7 +23,12 @@ struct HeaderDataType }; size_t get_type_byte_size(const std::string& type); -void copy_value_to_buffer(const char* buffer, size_t offset, const boost::property_tree::ptree& json_value, const HeaderDataType& header_data_type); + +void copy_value_to_buffer(const char* buffer, size_t offset, const boost::property_tree::ptree& json_value, + const HeaderDataType& header_data_type); + +std::shared_ptr get_value_from_json(const boost::property_tree::ptree& json_header, + const std::string& name, const HeaderDataType& header_data_type); class ZmqReceiver { @@ -40,8 +45,7 @@ class ZmqReceiver std::shared_ptr read_json_header(const std::string& header); - std::shared_ptr get_value_from_json(const boost::property_tree::ptree& json_header, - const std::string& name, const HeaderDataType& header_data_type) const; + public: ZmqReceiver(const std::string& connect_address, const int n_io_threads, const int receive_timeout,