table of contents
XS_MSG_INIT_DATA(3) | Crossroads I/O Manual | XS_MSG_INIT_DATA(3) |
NAME¶
xs_msg_init_data - initialise Crossroads message from a supplied bufferSYNOPSIS¶
typedef void (xs_free_fn) (void *data, void *hint); int xs_msg_init_data (xs_msg_t *msg, void *data , size_t size, xs_free_fn *ffn, void *hint);DESCRIPTION¶
The xs_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 the library 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 the library, with the data and hint arguments supplied to xs_msg_init_data().RETURN VALUE¶
The xs_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¶
ENOMEMInsufficient 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); xs_msg_t msg; rc = xs_msg_init_data (&msg, data, 6, my_free, NULL); assert (rc == 0);
SEE ALSO¶
xs_msg_init_size(3) xs_msg_init(3) xs_msg_close(3) xs_msg_data(3) xs_msg_size(3) xs(7)AUTHORS¶
The Crossroads documentation was written by Martin Sustrik < sustrik@250bpm.com[1]> and Martin Lucina < martin@lucina.net[2]>.NOTES¶
- 1.
- sustrik@250bpm.com
mailto:sustrik@250bpm.com
- 2.
- martin@lucina.net
mailto:martin@lucina.net
06/13/2012 | Crossroads I/O 1.2.0 |