Commit 667d1a82 authored by Martin Sustrik's avatar Martin Sustrik

man page updated to match change in zmq_free_fn

parent ab5abf6c
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
zmq_msg_init \- initialises 0MQ message from the given data zmq_msg_init \- initialises 0MQ message from the given data
.SH SYNOPSIS .SH SYNOPSIS
.nf .nf
.B typedef void (zmq_free_fn) (void *data); .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); .B int zmq_msg_init_data (zmq_msg_t *msg, void *data, size_t size, zmq_free_fn *ffn, void *hint);
.fi .fi
.SH DESCRIPTION .SH DESCRIPTION
Initialise a message from a supplied buffer. Message isn't copied, Initialise a message from a supplied buffer. Message isn't copied,
...@@ -14,12 +14,15 @@ instead 0MQ infrastructure takes ownership of the buffer located at address ...@@ -14,12 +14,15 @@ instead 0MQ infrastructure takes ownership of the buffer located at address
bytes long. bytes long.
Deallocation function ( Deallocation function (
.IR ffn .IR ffn
) will be called once the data are not needed anymore. Note that deallocation ) will be called once the data are not needed anymore. When using a static
function prototype is designed so that it complies with standard C constant buffer,
.IR free
function. When using a static constant buffer,
.IR ffn .IR ffn
may be NULL to prevent subsequent deallocation. 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 .SH RETURN VALUE
In case of success the function returns zero. Otherwise it returns -1 and In case of success the function returns zero. Otherwise it returns -1 and
sets sets
...@@ -29,11 +32,15 @@ to the appropriate value. ...@@ -29,11 +32,15 @@ to the appropriate value.
No errors are defined. No errors are defined.
.SH EXAMPLE .SH EXAMPLE
.nf .nf
void my_free (void *data, void *hint) {free (data);}
...
void *data = malloc (6); void *data = malloc (6);
assert (data); assert (data);
memcpy (data, "ABCDEF", 6); memcpy (data, "ABCDEF", 6);
zmq_msg_t msg; zmq_msg_t msg;
rc = zmq_msg_init_data (&msg, data, 6, free); rc = zmq_msg_init_data (&msg, data, 6, my_free, NULL);
assert (rc == 0); assert (rc == 0);
rc = zmq_send (s, &msg, 0); rc = zmq_send (s, &msg, 0);
assert (rc == 0); assert (rc == 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment