XROAD
xroad_event.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <stdint.h>
9 #include <sys/eventfd.h>
10 #include "xroad_common_types.h"
11 
12 #ifdef __cplusplus
13 extern "C"
14 {
15 #endif
16 
17 #define XROAD_EVENT_AS_SEMAPHORE EFD_SEMAPHORE // 1
18 
19 typedef struct xroad_event_s xroad_event_t;
20 
24 typedef struct xroad_event_callback_s
25 {
26  void* ctx;
33  void (*on_event)(xroad_event_t*, int64_t, void*);
35 
43 xroad_event_t* xroad_event_create(xroad_event_callback_t cb, uint32_t init_val, int32_t flags);
44 
49 void xroad_event_destroy(xroad_event_t* e);
50 
54 #define __xroad_event_dtor__ __dtor__(xroad_event_destructor)
55 void xroad_event_destructor(xroad_event_t** evt);
56 
63 xroad_errno_t xroad_event_fire(xroad_event_t* e, int64_t val);
64 
65 #ifdef __cplusplus
66 }
67 #endif
Definition: xroad_event.h:25
void(* on_event)(xroad_event_t *, int64_t, void *)
Definition: xroad_event.h:33
void * ctx
context, which will be passed in on_event callback
Definition: xroad_event.h:26
xroad_event_t * xroad_event_create(xroad_event_callback_t cb, uint32_t init_val, int32_t flags)
struct xroad_event_callback_s xroad_event_callback_t
void xroad_event_destroy(xroad_event_t *e)
xroad_errno_t xroad_event_fire(xroad_event_t *e, int64_t val)