table of contents
- testing 1.1.0-1
- stretch-backports 1.0.1~39-g6abacc1-1~bpo9+1
- unstable 1.1.0-1
WSLAY_EVENT_QUEUE_FRAGMENTED_MSG(3) | wslay | WSLAY_EVENT_QUEUE_FRAGMENTED_MSG(3) |
NAME¶
wslay_event_queue_fragmented_msg - Queue a fragmented message for future transmissionSYNOPSIS¶
#include <wslay/wslay.h>- int wslay_event_queue_fragmented_msg(wslay_event_context_ptr ctx, const struct wslay_event_fragmented_msg *arg)
- int wslay_event_queue_fragmented_msg_ex(wslay_event_context_ptr ctx, const struct wslay_event_fragmented_msg *arg, uint8_t rsv)
DESCRIPTION¶
wslay_event_queue_fragmented_msg() and wslay_event_queue_fragmented_msg_ex() queue a fragmented message specified in arg. The struct wslay_event_fragmented_msg is defined as:union wslay_event_msg_source { int fd; void *data; }; struct wslay_event_fragmented_msg { uint8_t opcode; union wslay_event_msg_source source; wslay_event_fragmented_msg_callback read_callback; };
- typedef ssize_t (*wslay_event_fragmented_msg_callback)(wslay_event_context_ptr ctx, uint8_t *buf, size_t len, const union wslay_event_msg_source *source, int *eof, void *user_data)
The opcode member is the opcode of the message. The source member is an union and normally it contains a "source" to generate message data. The read_callback is a callback function called by wslay_event_send() to read message data from source. The implementation of wslay_event_fragmented_msg_callback must store at most len bytes of data to buf and return the number of stored bytes. If all data is read (i.e., EOF), set *eof to 1. If no data can be generated at the moment, return 0. If there is an error, return -1 and set error code WSLAY_ERR_CALLBACK_FAILURE using wslay_event_set_error().
This function supports non-control messages only. For control frames, use wslay_event_queue_msg() or wslay_event_queue_close().
This function just queues a message and does not send it. wslay_event_send() function call sends these queued messages.
wslay_event_queue_fragmented_msg_ex() additionally accepts rsv parameter, which is a reserved bits to send. To set reserved bits, use macro WSLAY_RSV1_BIT, WSLAY_RSV2_BIT, and WSLAY_RSV3_BIT. See wslay_event_config_set_allowed_rsv_bits() to see the allowed reserved bits to set.
RETURN VALUE¶
wslay_event_queue_fragmented_msg() and wslay_event_queue_fragmented_msg_ex() return 0 if it succeeds, or returns the following negative error codes:- WSLAY_ERR_NO_MORE_MSG
- Could not queue given message. The one of possible reason is that close control frame has been queued/sent and no further queueing message is not allowed.
- WSLAY_ERR_INVALID_ARGUMENT
- The given message is invalid; or bit is set in rsv which is not allowed (see wslay_event_config_set_allowed_rsv_bits()).
- WSLAY_ERR_NOMEM
- Out of memory.
SEE ALSO¶
wslay_event_queue_msg(), wslay_event_queue_msg_ex(), wslay_event_queue_close()AUTHOR¶
Tatsuhiro TsujikawaCOPYRIGHT¶
2017, 2015, Tatsuhiro TsujikawaSeptember 28, 2017 | @PACKAGE_VERSION@ |