NAME¶
zmq_msg_init_data - initialise 0MQ message from a supplied buffer
SYNOPSIS¶
typedef void (zmq_free_fn) (void *data, void
*hint);
int zmq_msg_init_data (zmq_msg_t *msg, void
*data, size_t size, zmq_free_fn
*ffn, void *hint);
DESCRIPTION¶
The
zmq_msg_init_data() function shall initialise the message object
referenced by
msg to represent the content referenced by the buffer
located at address
data,
size bytes long. No copy of
data
shall be performed and 0MQ shall take ownership of the supplied buffer.
If provided, the deallocation function
ffn shall be called once the data
buffer is no longer required by 0MQ, with the
data and
hint
arguments supplied to
zmq_msg_init_data().
Caution
Never access
zmq_msg_t members directly, instead always use the
zmq_msg family of functions.
Caution
The deallocation function
ffn needs to be thread-safe, since it will be
called from an arbitrary thread.
Caution
The functions
zmq_msg_init(),
zmq_msg_init_data() and
zmq_msg_init_size() are mutually exclusive. Never initialize the same
zmq_msg_t twice.
RETURN VALUE¶
The
zmq_msg_init_data() function shall return zero if successful.
Otherwise it shall return -1 and set
errno to one of the values defined
below.
ERRORS¶
No errors are defined.
EXAMPLE¶
Initialising a message from a supplied buffer.
void my_free (void *data, void *hint)
{
free (data);
}
/* ... */
void *data = malloc (6);
assert (data);
memcpy (data, "ABCDEF", 6);
zmq_msg_t msg;
rc = zmq_msg_init_data (&msg, data, 6, my_free, NULL);
assert (rc == 0);
SEE ALSO¶
zmq_msg_init_size(3) zmq_msg_init(3) zmq_msg_close(3)
zmq_msg_data(3) zmq_msg_size(3) zmq(7)
AUTHORS¶
This manual page was written by the 0MQ community.