From 38cfdc212c623a46038f005b0c1604c3fdaf3762 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Mon, 14 May 2018 09:20:44 +0200 Subject: lib: Add event types to fqueue The event type of the current event in the fqueue can now be requested using the fqueue_type() command. Currently events for packets (FLOW_PKT), flows (FLOW_UP, FLOW_DOWN) and allocation (FLOW_ALLOC, FLOW_DEALLOC) are specified. The implementation only tracks FLOW_PKT at this point. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- include/ouroboros/fqueue.h | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) (limited to 'include/ouroboros/fqueue.h') diff --git a/include/ouroboros/fqueue.h b/include/ouroboros/fqueue.h index 1b102669..8a5dc988 100644 --- a/include/ouroboros/fqueue.h +++ b/include/ouroboros/fqueue.h @@ -28,6 +28,14 @@ #include #include +enum fqtype { + FLOW_PKT = 0, + FLOW_DOWN, + FLOW_UP, + FLOW_ALLOC, + FLOW_DEALLOC +}; + struct flow_set; struct fqueue; @@ -37,30 +45,32 @@ typedef struct fqueue fqueue_t; __BEGIN_DECLS -fset_t * fset_create(void); +fset_t * fset_create(void); + +void fset_destroy(fset_t * set); -void fset_destroy(fset_t * set); +fqueue_t * fqueue_create(void); -fqueue_t * fqueue_create(void); +void fqueue_destroy(struct fqueue * fq); -void fqueue_destroy(struct fqueue * fq); +void fset_zero(fset_t * set); -void fset_zero(fset_t * set); +int fset_add(fset_t * set, + int fd); -int fset_add(fset_t * set, - int fd); +bool fset_has(const fset_t * set, + int fd); -bool fset_has(const fset_t * set, - int fd); +void fset_del(fset_t * set, + int fd); -void fset_del(fset_t * set, - int fd); +int fqueue_next(fqueue_t * fq); -int fqueue_next(fqueue_t * fq); +enum fqtype fqueue_type(fqueue_t * fq); -int fevent(fset_t * set, - fqueue_t * fq, - const struct timespec * timeo); +int fevent(fset_t * set, + fqueue_t * fq, + const struct timespec * timeo); __END_DECLS -- cgit v1.2.3