14 #ifndef JABBERWERX_STREAM_H
15 #define JABBERWERX_STREAM_H
17 #include <event2/bufferevent.h>
27 #define JW_STREAM_CONFIG_NAMESPACE "namespace"
32 #define JW_STREAM_CONFIG_DOMAIN "domain"
38 #define JW_STREAM_CONFIG_HOST "host"
46 #define JW_STREAM_CONFIG_PORT "port"
52 #define JW_STREAM_CONFIG_SELECTOR JW_WORKQ_CONFIG_SELECTOR
57 #define JW_STREAM_CONFIG_URI "uri"
62 #define JW_STREAM_CONFIG_LOG_LABEL "loglabel"
71 #define JW_STREAM_CONFIG_QUEUE_SIZE "queuesize"
83 #define JW_STREAM_CONFIG_KEEPALIVE_SECONDS "keepalive_seconds"
93 #define JW_STREAM_CONFIG_TLS_CERTIFICATE_CHAIN_FILENAME "stream_cert_chain_file"
101 #define JW_STREAM_CONFIG_TLS_PRIVATE_KEY_FILENAME "stream_private_key_file"
110 #define JW_STREAM_CONFIG_BUFFEREVENT "socket_bufferevent"
116 #define JW_STREAM_EVENT_OPENED "streamOpened"
121 #define JW_STREAM_EVENT_CLOSED "streamClosed"
126 #define JW_STREAM_EVENT_ELEMRECV "streamElementsReceived"
131 #define JW_STREAM_EVENT_ELEMSENT "streamElementsSent"
136 #define JW_STREAM_EVENT_DESTROYED "streamDestroyed"
419 struct bufferevent *bev,
445 bufferevent_filter_cb input,
446 bufferevent_filter_cb output,
JABBERWERX_API bool jw_stream_socket_create(jw_workq *workq, jw_stream **stream, jw_err *err)
JABBERWERX_API bool jw_stream_open(jw_stream *stream, jw_htable *config, jw_err *err)
#define JABBERWERX_API
Definition: basics.h:32
JABBERWERX_API bool jw_stream_reopen(jw_stream *stream, jw_err *err)
jw_errcode
Definition: basics.h:122
JABBERWERX_API jw_htable * jw_stream_get_config(jw_stream *stream)
JABBERWERX_API struct bufferevent * jw_stream_add_filter(jw_stream *stream, bufferevent_filter_cb input, bufferevent_filter_cb output, int options, jw_data_free_func free_filter_ctx, void *ctx, jw_err *err)
struct _jw_dom_node jw_dom_node
Definition: dom.h:46
JABBERWERX_API struct event_base * jw_stream_get_selector(jw_stream *stream)
JABBERWERX_API jw_event * jw_stream_event(jw_stream *stream, const char *name)
void(* jw_data_free_func)(void *ptr)
Definition: mem.h:85
JABBERWERX_API void jw_stream_close(jw_stream *stream, jw_errcode close_reason)
JABBERWERX_API void jw_stream_destroy(jw_stream *stream)
JABBERWERX_API jw_workq * jw_stream_get_workq(jw_stream *stream)
JABBERWERX_API struct bufferevent * jw_stream_get_bufferevent(jw_stream *stream)
struct jw_workq_t jw_workq
Definition: workq.h:30
JABBERWERX_API bool jw_stream_bosh_create(jw_workq *workq, jw_stream **stream, jw_err *err)
JABBERWERX_API const char * jw_stream_get_stream_id(jw_stream *stream)
JABBERWERX_API bool jw_stream_is_open(jw_stream *stream)
JABBERWERX_API bool jw_stream_send(jw_stream *stream, jw_dom_node *dom, jw_err *err)
JABBERWERX_API const char * jw_stream_get_domain(jw_stream *stream)
Datatypes and functions for representing the Document Object Model (DOM).
struct _jw_htable jw_htable
Definition: htable.h:27
JABBERWERX_API bool jw_stream_set_bufferevent(jw_stream *stream, struct bufferevent *bev, jw_err *err)
Functions and data structures for eventing.
struct _jw_stream jw_stream
Definition: stream.h:140
JABBERWERX_API const char * jw_stream_get_namespace(jw_stream *stream)
Datatypes and functions for hashtables.
struct _jw_event_t jw_event
Definition: eventing.h:39