JabberWerxC  2015.1.1
eventing.h
Go to the documentation of this file.
1 
21 #ifndef JABBERWERX_EVENTING_H
22 #define JABBERWERX_EVENTING_H
23 
24 #include "util/mem.h"
25 #include "util/workq.h"
26 
27 
33 typedef struct _jw_event_dispatch_t jw_event_dispatcher;
34 
39 typedef struct _jw_event_t jw_event;
40 
42 typedef struct _jw_event_trigger_t jw_event_trigger_data;
43 
45 typedef struct _jw_event_data_t
46 {
48  void *source;
50  const char *name;
54  void *data;
56  void *selected;
65  bool handled;
66 } *jw_event_data;
67 
76  void *arg);
77 
87  bool result,
88  void *arg);
89 
90 
91 #ifdef __cplusplus
92 extern "C"
93 {
94 #endif
95 
115  jw_workq *workq,
116  jw_event_dispatcher **dispatch,
117  jw_err *err);
118 
130 
139  jw_event_dispatcher *dispatch);
140 
152  jw_event_dispatcher *dispatch,
153  const char *name);
154 
180  jw_event_dispatcher *dispatch,
181  const char *name,
182  jw_event **event,
183  jw_err *err);
184 
193 JABBERWERX_API const char *jw_event_get_name(jw_event *event);
194 
202 JABBERWERX_API const void *jw_event_get_source(jw_event *event);
203 
224  void *arg,
225  jw_err *err);
226 
238 
257  void *data,
258  jw_event_result_callback result_cb,
259  void *result_arg,
260  jw_err *err);
261 
276  jw_event *event,
277  void *data,
278  jw_event_result_callback result_cb,
279  void *result_arg,
280  jw_event_trigger_data *trigger_data);
281 
296  jw_event_trigger_data **trigger_data, jw_err *err);
297 
307  jw_event_trigger_data *trigger_data);
308 
309 #ifdef __cplusplus
310 }
311 #endif
312 
313 #endif /* JABBERWERX_EVENTING_H */
#define JABBERWERX_API
Definition: basics.h:32
This file contains JabberWerxC allocation related functions and jw_pool objects.
void * source
Definition: eventing.h:48
struct _jw_event_dispatch_t jw_event_dispatcher
Definition: eventing.h:33
JABBERWERX_API bool jw_event_bind(jw_event *event, jw_event_notify_callback cb, void *arg, jw_err *err)
jw_event * notifier
Definition: eventing.h:52
void(* jw_event_notify_callback)(jw_event_data evt, void *arg)
Definition: eventing.h:75
JABBERWERX_API const char * jw_event_get_name(jw_event *event)
JABBERWERX_API bool jw_event_trigger(jw_event *event, void *data, jw_event_result_callback result_cb, void *result_arg, jw_err *err)
struct _jw_pool_int jw_pool
Definition: mem.h:51
void * data
Definition: eventing.h:54
JABBERWERX_API jw_workq * jw_event_dispatcher_get_workq(jw_event_dispatcher *dispatch)
Definition: eventing.h:45
JABBERWERX_API bool jw_event_prepare_trigger(jw_event_dispatcher *dispatch, jw_event_trigger_data **trigger_data, jw_err *err)
struct _jw_event_data_t * jw_event_data
JABBERWERX_API bool jw_event_dispatcher_create(void *source, jw_workq *workq, jw_event_dispatcher **dispatch, jw_err *err)
JABBERWERX_API void jw_event_unbind(jw_event *event, jw_event_notify_callback cb)
JABBERWERX_API void jw_event_unprepare_trigger(jw_event_trigger_data *trigger_data)
struct _jw_event_trigger_t jw_event_trigger_data
Definition: eventing.h:42
void(* jw_event_result_callback)(jw_event_data evt, bool result, void *arg)
Definition: eventing.h:86
const char * name
Definition: eventing.h:50
struct jw_workq_t jw_workq
Definition: workq.h:30
bool handled
Definition: eventing.h:65
This file contains JabberWerxC Work Queue types and functions.
JABBERWERX_API void jw_event_dispatcher_destroy(jw_event_dispatcher *dispatch)
Definition: basics.h:157
JABBERWERX_API bool jw_event_dispatcher_create_event(jw_event_dispatcher *dispatch, const char *name, jw_event **event, jw_err *err)
JABBERWERX_API jw_event * jw_event_dispatcher_get_event(jw_event_dispatcher *dispatch, const char *name)
JABBERWERX_API void jw_event_trigger_prepared(jw_event *event, void *data, jw_event_result_callback result_cb, void *result_arg, jw_event_trigger_data *trigger_data)
jw_pool * pool
Definition: eventing.h:58
JABBERWERX_API const void * jw_event_get_source(jw_event *event)
void * selected
Definition: eventing.h:56
struct _jw_event_t jw_event
Definition: eventing.h:39