-#ifndef _PSMB_H
-
-#include <stdlib.h>
-#include <stdbool.h>
-
-struct psmb_ctx;
-
-typedef struct _psmb_result psmb_result_t;
-
-struct psmb_ctx *psmb_new(void);
-struct psmb_ctx *psmb_new_mm(void *(*malloc)(size_t size),
- void (*free)(void *ptr),
- void *(*realloc)(void *ptr, size_t size));
-psmb_result_t psmb_set_pmtu(struct psmb_ctx * ctx, int pmtu);
-psmb_result_t psmb_open(struct psmb_ctx *ctx);
-void psmb_destroy(struct psmb_ctx *ctx);
-int psmb_getfd(struct psmb_ctx *ctx);
-bool psmb_need_write_wait(psmb_result_t result);
-psmb_result_t psmb_ev_rd(struct psmb_ctx *ctx);
-psmb_result_t psmb_ev_wr(struct psmb_ctx *ctx);
-psmb_result_t psmb_ev_ex(struct psmb_ctx *ctx);
-psmb_result_t psmb_subscribe(struct psmb_ctx * ctx, char *channel);
-psmb_result_t psmb_publish(struct psmb_ctx * ctx, char *channel,
- void *data, size_t size);
-bool psmb_message(struct psmb_ctx * ctx, char **channel,
- void **data, size_t *size);
-
-#endif