Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZMQ_MSG_INIT_DATA(3)		   0MQ Manual		    ZMQ_MSG_INIT_DATA(3)

NAME
     zmq_msg_init_data - initialise 0MQ message from a supplied buffer

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
     The zmq_msg_init_data() function shall initialise the message object refer-
     enced  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  sup-
     plied 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.

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.

ERRORS
     ENOMEM
	 Insufficient storage space is available.

EXAMPLE
     Initialising a message from a supplied buffer.

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

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)

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			   10/09/2023		    ZMQ_MSG_INIT_DATA(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_msg_init_data&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help