diff --git a/src/ZmqReceiver.cpp b/src/ZmqReceiver.cpp index ea7a1b0..3b7488e 100644 --- a/src/ZmqReceiver.cpp +++ b/src/ZmqReceiver.cpp @@ -145,6 +145,49 @@ shared_ptr ZmqReceiver::get_value_from_json(const pt::ptree& json_header, return shared_ptr(buffer, default_delete()); + // TODO: This is so ugly I cannot even talk about it. Remove after production panic is over. + } else if (type == "uJF4.5M_header") { + + // 8 bytes (int64) * 9 values + char* buffer = new char[72]; + + size_t index = 0; + + for (const auto& item : json_header.get_child(name)) { + + auto value = item.second.get_value(); + char* value_buffer = reinterpret_cast(&value); + + // 8 bytes per value. + memcpy(buffer + (index * 8), value_buffer, 8); + + ++index; + } + + return shared_ptr(buffer, default_delete()); + + // TODO: This is so ugly I cannot even talk about it. Remove after production panic is over. + } else if (type == "uJF2.0M_header") { + + // 8 bytes (int64) * 4 values + char* buffer = new char[32]; + + size_t index = 0; + + for (const auto& item : json_header.get_child(name)) { + + auto value = item.second.get_value(); + char* value_buffer = reinterpret_cast(&value); + + // 8 bytes per value. + memcpy(buffer + (index * 8), value_buffer, 8); + + ++index; + } + + return shared_ptr(buffer, default_delete()); + + } else { // We cannot really convert this attribute. stringstream error_message;