mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 02:42:58 +01:00
68 lines
1.5 KiB
Plaintext
68 lines
1.5 KiB
Plaintext
zmq_msg_init_data(3)
|
|
====================
|
|
|
|
|
|
NAME
|
|
----
|
|
zmq_msg_init_data - initialises 0MQ message from the given data
|
|
|
|
|
|
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
|
|
-----------
|
|
Initialise a message from a supplied buffer. Message isn't copied,
|
|
instead 0MQ infrastructure takes ownership of the buffer located at address
|
|
'data', 'size' bytes long. Deallocation function ('ffn') will be called once
|
|
the data are not needed anymore. When using a static constant buffer, 'ffn' may
|
|
be NULL to prevent subsequent deallocation. If needed, additional 'hint' can be
|
|
passed to the initialisation function. It's an opaque pointer that will be
|
|
later on passed to 'ffn' as a second argument.
|
|
|
|
|
|
RETURN VALUE
|
|
------------
|
|
In case of success the function returns zero. Otherwise it returns -1 and
|
|
sets 'errno' to the appropriate value.
|
|
|
|
|
|
ERRORS
|
|
------
|
|
No errors are defined.
|
|
|
|
|
|
EXAMPLE
|
|
-------
|
|
----
|
|
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);
|
|
----
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkzmq:zmq_msg_close[3]
|
|
linkzmq:zmq_msg_init[3]
|
|
linkzmq:zmq_msg_init_size[3]
|
|
linkzmq:zmq_msg_data[3]
|
|
linkzmq:zmq_msg_size[3]
|
|
|
|
|
|
AUTHOR
|
|
------
|
|
Martin Sustrik <sustrik at 250bpm dot com>
|