mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-14 02:57:47 +01:00
56 lines
1.5 KiB
Groff
56 lines
1.5 KiB
Groff
.TH zmq_msg_init_data 3 "" "(c)2007-2010 iMatix Corporation" "0MQ User Manuals"
|
|
.SH NAME
|
|
zmq_msg_init \- initialises 0MQ message from the given data
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B typedef void (zmq_free_fn) (void *data, void *hint);
|
|
.B int zmq_msg_init_data (zmq_msg_t *msg, void *data, size_t size, zmq_free_fn *ffn, void *hint);
|
|
.fi
|
|
.SH DESCRIPTION
|
|
Initialise a message from a supplied buffer. Message isn't copied,
|
|
instead 0MQ infrastructure takes ownership of the buffer located at address
|
|
.IR data ,
|
|
.IR size
|
|
bytes long.
|
|
Deallocation function (
|
|
.IR ffn
|
|
) will be called once the data are not needed anymore. When using a static
|
|
constant buffer,
|
|
.IR ffn
|
|
may be NULL to prevent subsequent deallocation. If needed, additional
|
|
.IR hint
|
|
can be passed to the initialisation function. It's an opaque pointer that will
|
|
be later on passed to
|
|
.IR ffn
|
|
as a second argument.
|
|
.SH RETURN VALUE
|
|
In case of success the function returns zero. Otherwise it returns -1 and
|
|
sets
|
|
.IR errno
|
|
to the appropriate value.
|
|
.SH ERRORS
|
|
No errors are defined.
|
|
.SH EXAMPLE
|
|
.nf
|
|
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);
|
|
rc = zmq_send (s, &msg, 0);
|
|
assert (rc == 0);
|
|
.fi
|
|
.SH SEE ALSO
|
|
.BR zmq_msg_close (3)
|
|
.BR zmq_msg_init (3)
|
|
.BR zmq_msg_init_size (3)
|
|
.BR zmq_msg_data (3)
|
|
.BR zmq_msg_size (3)
|
|
.SH AUTHOR
|
|
Martin Sustrik <sustrik at 250bpm dot com>
|