X-Git-Url: http://www.average.org/gitweb/?p=psmb.git;a=blobdiff_plain;f=include%2Fpsmb.h;h=c5869ecd783e1aa5532acfaade7b5010f260cded;hp=5092f6a3eaceb117869961e4ba6bf542a8dea5fb;hb=3976435a109cf8586ecd362b2f320b0ee9044c25;hpb=b59ce6ecc3287f39125703670720c8323235c8ac diff --git a/include/psmb.h b/include/psmb.h index 5092f6a..c5869ec 100644 --- a/include/psmb.h +++ b/include/psmb.h @@ -2,28 +2,37 @@ #include #include +#include typedef struct _psmb_ctx psmb_ctx_t; -typedef struct _psmb_result psmb_result_t; +typedef struct _psmb_result { int code; } psmb_result_t; psmb_ctx_t *psmb_new(void); psmb_ctx_t *psmb_new_mm(void *(*malloc)(size_t size), - void (*free)(void *ptr), - void *(*realloc)(void *ptr, size_t size)); + void (*free)(void *ptr), + void *(*realloc)(void *ptr, size_t size)); +psmb_result_t psmb_set_logf(psmb_ctx_t *ctx, + void (*logf)(void *log_priv, int priority, const char *format, ...), + void *log_priv); psmb_result_t psmb_set_pmtu(psmb_ctx_t *ctx, unsigned int pmtu); psmb_result_t psmb_set_port(psmb_ctx_t *ctx, unsigned short pmtu); -psmb_result_t psmb_set_mgrp(psmb_ctx_t *ctx, struct {unsigned char _uc[16];} pfx, unsigned char bits); +psmb_result_t psmb_set_mgrp(psmb_ctx_t *ctx, struct in6_addr prefix, + unsigned char prefixlen); psmb_result_t psmb_open(psmb_ctx_t *ctx); void psmb_destroy(psmb_ctx_t *ctx); int psmb_getfd(psmb_ctx_t *ctx); +bool psmb_success(psmb_result_t result); +bool psmb_message_waiting(psmb_result_t result); bool psmb_need_write_wait(psmb_result_t result); psmb_result_t psmb_ev_rd(psmb_ctx_t *ctx); psmb_result_t psmb_ev_wr(psmb_ctx_t *ctx); psmb_result_t psmb_ev_ex(psmb_ctx_t *ctx); psmb_result_t psmb_subscribe(psmb_ctx_t *ctx, char *channel); +psmb_result_t psmb_unsubscribe(psmb_ctx_t *ctx, char *channel); psmb_result_t psmb_publish(psmb_ctx_t *ctx, char *channel, - void *data, size_t size); -bool psmb_message(psmb_ctx_t *ctx, char **channel, - void **data, size_t *size); + void *data, size_t size); +psmb_result_t psmb_get_message(psmb_ctx_t *ctx, char **channel, + void **data, size_t *size); +psmb_result_t psmb_acknowledge(psmb_ctx_t *ctx); #endif