From d5f9b87896a57c24b8dc1fa917465438ad94f1f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20L=C3=BCke?= Date: Wed, 25 Dec 2024 18:29:22 +0100 Subject: [PATCH] nng_proto: add comments. fix return statement in serialize_proto_to_nng() --- include/mesytec-mnode/mnode_nng_proto.h | 9 +++++++++ src/mnode_nng_proto.cc | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/mesytec-mnode/mnode_nng_proto.h b/include/mesytec-mnode/mnode_nng_proto.h index f563127..49021f7 100644 --- a/include/mesytec-mnode/mnode_nng_proto.h +++ b/include/mesytec-mnode/mnode_nng_proto.h @@ -7,8 +7,17 @@ namespace mesytec::mnode::nng { +// Format is: [u32 size][protobuf message] + +// Appends size prefix and serialied message contents to the nng msg. +// Returns the number of bytes written. size_t serialize_proto_to_nng(const google::protobuf::MessageLite &message, nng_msg *msg); + +// Deserializes a protobuf message from an nng msg. +// Returns the number of bytes used (size prefix + message). size_t deserialize_proto_from_nng(google::protobuf::MessageLite &message, nng_msg *msg); + +// Same as above but also trims the message. size_t deserialize_proto_from_nng_trim(google::protobuf::MessageLite &message, nng_msg *msg); } // namespace mesytec::mnode::nng diff --git a/src/mnode_nng_proto.cc b/src/mnode_nng_proto.cc index 487e92b..a8f7823 100644 --- a/src/mnode_nng_proto.cc +++ b/src/mnode_nng_proto.cc @@ -10,7 +10,7 @@ size_t serialize_proto_to_nng(const google::protobuf::MessageLite &message, nng_ auto messageSize = message.ByteSizeLong(); if (auto res = nng_msg_realloc(msg, nng_msg_len(msg) + sizeof(u32) + messageSize)) - return false; + return 0; *reinterpret_cast(nng_msg_body(msg)) = messageSize; if (!message.SerializeToArray(reinterpret_cast(nng_msg_body(msg)) + sizeof(u32),