logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

zmq_msg_init_data - initialise 0MQ message from a supplied buffer

Authors

       This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at
       http://www.zeromq.org/docs:contributing.

0MQ 4.3.5                                          03/31/2024                               ZMQ_MSG_INIT_DATA(3)

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

           If the deallocation function is not provided, the allocated memory will not be freed, and this may
           cause a memory leak.

           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.

Errors

ENOMEM
           Insufficient storage space is available.

Example

Initialisingamessagefromasuppliedbuffer.

           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);

Name

       zmq_msg_init_data - initialise 0MQ message from a supplied buffer

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.

See Also

zmq_msg_init_size(3) zmq_msg_init_buffer(3) zmq_msg_init(3) zmq_msg_close(3) zmq_msg_data(3)
       zmq_msg_size(3) zmq(7)

Synopsis

typedefvoid(zmq_free_fn)(void*data,void*hint);intzmq_msg_init_data(zmq_msg_t*msg,void*data,size_tsize,zmq_free_fn*ffn,void*hint);

See Also