From: Eugene Crosser Date: Mon, 11 Mar 2019 08:56:49 +0000 (+0100) Subject: Initial API prototype X-Git-Url: http://www.average.org/gitweb/?p=psmb.git;a=commitdiff_plain;h=d5ea7464a3abd28f5c80d3af00662082420e260c Initial API prototype --- d5ea7464a3abd28f5c80d3af00662082420e260c diff --git a/mps.h b/mps.h new file mode 100644 index 0000000..23b449d --- /dev/null +++ b/mps.h @@ -0,0 +1,28 @@ +#ifndef _MPS_H + +#include +#include + +struct mps_ctx; + +typedef struct _mps_result mps_result_t; + +struct mps_ctx *mps_new(void); +struct mps_ctx *mps_new_mm(void *(*malloc)(size_t size), + void (*free)(void *ptr), + void *(*realloc)(void *ptr, size_t size)); +mps_result_t mps_set_pmtu(struct mps_ctx * ctx, int pmtu); +mps_result_t mps_open(struct mps_ctx *ctx); +void mps_destroy(struct mps_ctx *ctx); +int mps_getfd(struct mps_ctx *ctx); +bool mps_need_write_wait(mps_result_t result); +mps_result_t mps_ev_rd(struct mps_ctx *ctx); +mps_result_t mps_ev_wr(struct mps_ctx *ctx); +mps_result_t mps_ev_ex(struct mps_ctx *ctx); +mps_result_t mps_subscribe(struct mps_ctx * ctx, char *channel); +mps_result_t mps_publish(struct mps_ctx * ctx, char *channel, + void *data, size_t size); +bool mps_message(struct mps_ctx * ctx, char **channel, + void **data, size_t *size); + +#endif