From fdd9d2d5f098f4f5b92a50ad1f11cd533f8da1d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20N=C3=B8kland?= Date: Thu, 3 Dec 2015 08:43:24 +0100 Subject: [PATCH] New fill constructor for message_t New fill constructor: message_t(const void *data, size_t size). Constructs a new message of the given size and copies the data to the message body. In addition a new rebuild() function that does the same for an already constructed object --- zmq.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/zmq.hpp b/zmq.hpp index f514b54..e4ed26d 100644 --- a/zmq.hpp +++ b/zmq.hpp @@ -227,6 +227,14 @@ namespace zmq } } + inline message_t (const void *data_, size_t size_) + { + int rc = zmq_msg_init_size (&msg, size_); + if (rc != 0) + throw error_t (); + memcpy(data(), data_, size_); + } + inline message_t (void *data_, size_t size_, free_fn *ffn_, void *hint_ = NULL) { @@ -276,6 +284,17 @@ namespace zmq throw error_t (); } + inline void rebuild (const void *data_, size_t size_) + { + int rc = zmq_msg_close (&msg); + if (rc != 0) + throw error_t (); + rc = zmq_msg_init_size (&msg, size_); + if (rc != 0) + throw error_t (); + memcpy(data(), data_, size_); + } + inline void rebuild (void *data_, size_t size_, free_fn *ffn_, void *hint_ = NULL) {