Provided by: libwslay-doc_1.1.1-3_all bug

NAME

       wslay_event_queue_fragmented_msg_ex - Queue a fragmented message for future transmission

SYNOPSIS

       #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 Tsujikawa

COPYRIGHT

       2021, 2015, Tatsuhiro Tsujikawa

@PACKAGE_VERSION@                          Nov 07, 2021    WSLAY_EVENT_QUEUE_FRAGMENTED_MSG_EX(3)