From aa7ba3e09d06e1809353300df1f3285b6c3eab27 Mon Sep 17 00:00:00 2001 From: eeff Date: Wed, 26 Jan 2022 15:52:17 +0800 Subject: [PATCH] Add function nng_msg_inplace_from_buf --- src/core/message.c | 12 ++++++++++++ src/core/message.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/core/message.c b/src/core/message.c index e842baf1..bcb29926 100644 --- a/src/core/message.c +++ b/src/core/message.c @@ -149,3 +149,15 @@ void *msg_get_buf_ptr(message_t *msg) return msg->inp_buf.buf_ptr; } } + +nng_msg *nng_msg_inplace_from_buf(msg_type_e msg_type, void *buf, size_t size) +{ + nng_msg *msg = NULL; + size_t msg_size = msg_inplace_data_get_size(size); + int rv = nng_msg_alloc(&msg, msg_size); + if (rv == 0) { + message_t *msg_ptr = nng_msg_body(msg); + msg_with_struct_init(msg_ptr, msg_type, buf, size); + } + return msg; +} diff --git a/src/core/message.h b/src/core/message.h index 7a021fdb..8825e11a 100644 --- a/src/core/message.h +++ b/src/core/message.h @@ -216,4 +216,7 @@ void msg_external_data_uninit(message_t *msg); msg_type_e msg_get_type(message_t *msg); size_t msg_get_buf_len(message_t *msg); void * msg_get_buf_ptr(message_t *msg); + +nng_msg *nng_msg_inplace_from_buf(msg_type_e msg_type, void *buf, size_t size); + #endif