2023-10-21 01:50:38 +02:00
|
|
|
= zmq_msg_init_data(3)
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== NAME
|
2010-03-09 18:47:31 +01:00
|
|
|
zmq_msg_init_data - initialise 0MQ message from a supplied buffer
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== SYNOPSIS
|
2010-03-09 18:47:31 +01:00
|
|
|
*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');*
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== DESCRIPTION
|
2010-03-09 18:47:31 +01:00
|
|
|
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.
|
2010-02-10 16:18:46 +01:00
|
|
|
|
2011-04-03 20:44:02 +02:00
|
|
|
CAUTION: The deallocation function 'ffn' needs to be thread-safe, since it
|
|
|
|
will be called from an arbitrary thread.
|
|
|
|
|
2013-10-14 20:27:23 +02:00
|
|
|
CAUTION: If the deallocation function is not provided, the allocated memory
|
|
|
|
will not be freed, and this may cause a memory leak.
|
|
|
|
|
|
|
|
|
2020-04-09 22:59:43 +00:00
|
|
|
CAUTION: The functions _zmq_msg_init()_, _zmq_msg_init_data()_,
|
|
|
|
_zmq_msg_init_size()_ and _zmq_msg_init_buffer()_ are mutually exclusive.
|
|
|
|
Never initialise the same 'zmq_msg_t' twice.
|
2010-05-07 21:53:55 +02:00
|
|
|
|
2010-02-10 16:18:46 +01:00
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== RETURN VALUE
|
2010-03-09 18:47:31 +01:00
|
|
|
The _zmq_msg_init_data()_ function shall return zero if successful. Otherwise
|
2010-03-10 12:19:39 +01:00
|
|
|
it shall return `-1` and set 'errno' to one of the values defined below.
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== ERRORS
|
2011-05-17 10:09:04 +02:00
|
|
|
*ENOMEM*::
|
|
|
|
Insufficient storage space is available.
|
|
|
|
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== EXAMPLE
|
2010-03-09 18:47:31 +01:00
|
|
|
.Initialising a message from a supplied buffer
|
2010-02-10 16:18:46 +01:00
|
|
|
----
|
2010-03-09 18:47:31 +01:00
|
|
|
void my_free (void *data, void *hint)
|
|
|
|
{
|
|
|
|
free (data);
|
|
|
|
}
|
2010-02-10 16:18:46 +01:00
|
|
|
|
2010-03-09 18:47:31 +01:00
|
|
|
/* ... */
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
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);
|
|
|
|
----
|
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== SEE ALSO
|
2023-11-03 11:36:47 +01:00
|
|
|
* xref:zmq_msg_init_size.adoc[zmq_msg_init_size]
|
|
|
|
* xref:zmq_msg_init_buffer.adoc[zmq_msg_init_buffer]
|
|
|
|
* xref:zmq_msg_init.adoc[zmq_msg_init]
|
|
|
|
* xref:zmq_msg_close.adoc[zmq_msg_close]
|
|
|
|
* xref:zmq_msg_data.adoc[zmq_msg_data]
|
|
|
|
* xref:zmq_msg_size.adoc[zmq_msg_size]
|
|
|
|
* xref:zmq.adoc[zmq]
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
2023-10-21 01:50:38 +02:00
|
|
|
== AUTHORS
|
2013-04-11 18:53:02 +02:00
|
|
|
This page was written by the 0MQ community. To make a change please
|
2023-11-22 23:18:23 +01:00
|
|
|
read the 0MQ Contribution Policy at <https://zeromq.org/how-to-contribute/>.
|