]> www.average.org Git - psmb.git/blob - psmb.h
e975de4ab87a24842a940f2954e70209bcecd37a
[psmb.git] / psmb.h
1 #ifndef _PSMB_H
2
3 #include <stdlib.h>
4 #include <stdbool.h>
5
6 typedef struct _psmb_ctx psmb_ctx_t;
7 typedef struct _psmb_result psmb_result_t;
8
9 psmb_ctx_t *psmb_new(void);
10 psmb_ctx_t *psmb_new_mm(void *(*malloc)(size_t size),
11                         void (*free)(void *ptr),
12                         void *(*realloc)(void *ptr, size_t size));
13 psmb_result_t psmb_set_pmtu(psmb_ctx_t *ctx, int pmtu);
14 psmb_result_t psmb_open(psmb_ctx_t *ctx);
15 void psmb_destroy(psmb_ctx_t *ctx);
16 int psmb_getfd(psmb_ctx_t *ctx);
17 bool psmb_need_write_wait(psmb_result_t result);
18 psmb_result_t psmb_ev_rd(psmb_ctx_t *ctx);
19 psmb_result_t psmb_ev_wr(psmb_ctx_t *ctx);
20 psmb_result_t psmb_ev_ex(psmb_ctx_t *ctx);
21 psmb_result_t psmb_subscribe(psmb_ctx_t *ctx, char *channel);
22 psmb_result_t psmb_publish(psmb_ctx_t *ctx, char *channel,
23                                 void *data, size_t size);
24 bool psmb_message(psmb_ctx_t *ctx, char **channel,
25                                 void **data, size_t *size);
26
27 #endif