libonion
|
Websocket data type, as returned by onion_websocket_new. More...
#include <types.h>
Public Types | |
enum | onion_websocket_opcode_e |
Types of fragments that websockets support. More... | |
typedef onion_connection_status(* | onion_websocket_callback_t )(void *privdata, onion_websocket *ws, ssize_t data_ready_length) |
Prototype for websocket callbacks. |
Public Member Functions | |
onion_websocket * | onion_websocket_new (onion_request *req, onion_response *res) |
Creates a websocket connection from the given request to the response. | |
void | onion_websocket_free (onion_websocket *ws) |
Frees the websocket. | |
int | onion_websocket_write (onion_websocket *ws, const char *buffer, size_t _len) |
Writes a fragment to the websocket. | |
int | onion_websocket_read (onion_websocket *ws, char *buffer, size_t len) |
Reads some data from the websocket. | |
int | onion_websocket_vprintf (onion_websocket *ws, const char *fmt, va_list args) |
Uses vprintf-style writing to the websocket. | |
int | onion_websocket_printf (onion_websocket *ws, const char *fmt,...) |
Uses printf-style writing to the websocket. | |
void | onion_websocket_set_callback (onion_websocket *ws, onion_websocket_callback_t cb) |
Sets the next callback to call if more data is available. | |
void | onion_websocket_set_userdata (onion_websocket *ws, void *userdata, void(*free_userdata)(void *)) |
Sets the userdata to use for this websocket connection. | |
onion_connection_status | onion_websocket_call (onion_websocket *ws) |
Used internally when new data is ready on the websocket file descriptor. |
Data Fields | |
onion_request * | req |
onion_websocket_callback_t | callback |
Associated request. | |
void * | user_data |
Callback to call, if any, when new data is available. | |
void(* | free_user_data )(void *) |
int64_t | data_left |
char | mask [4] |
int8_t | mask_pos |
int8_t | flags |
onion_websocket_opcode | opcode:4 |
Defined at websocket.c. |
Websocket data type, as returned by onion_websocket_new.
FIXME: Some websocket description on how to use.
Ping requests (client->server) are handled internally. pong answers are not (server->client).
When a ping request is received, callback may be called with length=0, and no data waiting to be read.
onion_websocket_callback_t onion_websocket_t::callback |
Associated request.
Referenced by onion_websocket_call(), onion_websocket_free(), onion_websocket_new(), onion_websocket_read(), and onion_websocket_set_callback().
int64_t onion_websocket_t::data_left |
Referenced by onion_websocket_call(), onion_websocket_new(), and onion_websocket_read().
int8_t onion_websocket_t::flags |
Referenced by onion_websocket_new(), and onion_websocket_read().
void(* onion_websocket_t::free_user_data)(void *) |
Referenced by onion_websocket_free(), onion_websocket_new(), and onion_websocket_set_userdata().
char onion_websocket_t::mask[4] |
Referenced by onion_websocket_read().
int8_t onion_websocket_t::mask_pos |
Referenced by onion_websocket_read().
onion_websocket_opcode onion_websocket_t::opcode |
Defined at websocket.c.
Referenced by onion_websocket_get_opcode(), onion_websocket_new(), onion_websocket_set_opcode(), and onion_websocket_write().
onion_request* onion_websocket_t::req |
void* onion_websocket_t::user_data |
Callback to call, if any, when new data is available.
Referenced by onion_websocket_call(), onion_websocket_free(), onion_websocket_new(), and onion_websocket_set_userdata().