diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/skalibs/sassserver.h | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/include/skalibs/sassserver.h b/src/include/skalibs/sassserver.h index f43ea4c..4294e59 100644 --- a/src/include/skalibs/sassserver.h +++ b/src/include/skalibs/sassserver.h @@ -8,6 +8,8 @@ #include <skalibs/tai.h> #include <skalibs/iopause.h> +#include <skalibs/gensetdyn.h> +#include <skalibs/avltree.h> typedef int sassserver_send_func (void *, uint32_t, uint32_t, uint32_t, char const *, size_t) ; typedef sassserver_send_func *sassserver_send_func_ref ; @@ -15,15 +17,27 @@ typedef sassserver_send_func *sassserver_send_func_ref ; typedef void sassserver_cancel_func (void *) ; typedef sassserver_cancel_func *sassserver_cancel_func_ref ; -extern void sassserver_init (char const *, char const *, sassserver_send_func_ref, sassserver_cancel_func_ref, size_t, tain const *, tain *stamp) ; -#define sassserver_init_g(banner1, banner2, sendf, cancelf, esize, deadline) sassserver_init(banner1, banner2, sendf, cancelf, esize, (deadline), &STAMP) -extern unsigned int sassserver_prepare_iopause (iopause_fd *, tain *) ; -extern void sassserver_timeout (void) ; -extern int sassserver_event (iopause_fd const *) ; -extern void *sassserver_data (uint32_t) ; +typedef struct sassserver_s sassserver, *sassserver_ref ; +struct sassserver_s +{ + sassserver_send_func_ref sendf ; + sassserver_cancel_func_ref cancelf ; + size_t datasize ; + gensetdyn queries ; + avltree by_deadline ; + avltree by_id ; +} ; +#define SASSSERVER_ZERO { .sendf = 0, .cancelf = 0, .datasize = 0, .queries = GENSETDYN_ZERO, .by_deadline = AVLTREE_ZERO, .by_id = AVLTREE_ZERO } -extern void sassserver_async_failure (uint32_t, int) ; -extern void sassserver_async_success (uint32_t, uint32_t, char const *, size_t) ; -extern void sassserver_async_successv (uint32_t, uint32_t, struct iovec const *, unsigned int) ; +extern void sassserver_init (sassserver *, char const *, char const *, sassserver_send_func_ref, sassserver_cancel_func_ref, size_t, tain const *, tain *stamp) ; +#define sassserver_init_g(a, banner1, banner2, sendf, cancelf, esize, deadline) sassserver_init(a, banner1, banner2, sendf, cancelf, esize, (deadline), &STAMP) +extern unsigned int sassserver_prepare_iopause (sassserver const *, iopause_fd *, tain *) ; +extern void sassserver_timeout (sassserver *) ; +extern int sassserver_event (sassserver *, iopause_fd const *) ; +extern void *sassserver_data (sassserver const *, uint32_t) ; + +extern void sassserver_async_failure (sassserver *, uint32_t, int) ; +extern void sassserver_async_success (sassserver *, uint32_t, uint32_t, char const *, size_t) ; +extern void sassserver_async_successv (sassserver *, uint32_t, uint32_t, struct iovec const *, unsigned int) ; #endif |
