afb-evt: prepare futur afb_eventid
[src/app-framework-binder.git] / src / afb-evt.h
index 9071b32..823f8fd 100644 (file)
 #pragma once
 
 struct afb_event;
+struct afb_evtid;
 struct afb_session;
 struct json_object;
 struct afb_evt_listener;
 
 struct afb_evt_itf
 {
-       void (*push)(void *closure, const char *event, int eventid, struct json_object *object);
-       void (*broadcast)(void *closure, const char *event, int eventid, struct json_object *object);
-       void (*add)(void *closure, const char *event, int eventid);
-       void (*remove)(void *closure, const char *event, int eventid);
+       void (*push)(void *closure, const char *event, int evtid, struct json_object *object);
+       void (*broadcast)(void *closure, const char *event, int evtid, struct json_object *object);
+       void (*add)(void *closure, const char *event, int evtid);
+       void (*remove)(void *closure, const char *event, int evtid);
 };
 
 extern struct afb_evt_listener *afb_evt_listener_create(const struct afb_evt_itf *itf, void *closure);
@@ -37,8 +38,34 @@ extern int afb_evt_broadcast(const char *event, struct json_object *object);
 extern struct afb_evt_listener *afb_evt_listener_addref(struct afb_evt_listener *listener);
 extern void afb_evt_listener_unref(struct afb_evt_listener *listener);
 
-extern struct afb_event afb_evt_create_event(const char *name);
-extern const char *afb_evt_event_name(struct afb_event event);
+extern struct afb_evtid *afb_evt_evtid_create(const char *fullname);
+
+extern struct afb_evtid *afb_evt_evtid_addref(struct afb_evtid *evtid);
+extern struct afb_evtid *afb_evt_evtid_hooked_addref(struct afb_evtid *evtid);
+
+extern void afb_evt_evtid_unref(struct afb_evtid *evtid);
+extern void afb_evt_evtid_hooked_unref(struct afb_evtid *evtid);
+
+extern const char *afb_evt_evtid_fullname(struct afb_evtid *evtid);
+extern int afb_evt_evtid_id(struct afb_evtid *evtid);
+
+extern const char *afb_evt_evtid_name(struct afb_evtid *evtid);
+extern const char *afb_evt_evtid_hooked_name(struct afb_evtid *evtid);
+
+extern int afb_evt_evtid_push(struct afb_evtid *evtid, struct json_object *obj);
+extern int afb_evt_evtid_hooked_push(struct afb_evtid *evtid, struct json_object *obj);
+
+extern int afb_evt_evtid_broadcast(struct afb_evtid *evtid, struct json_object *object);
+extern int afb_evt_evtid_hooked_broadcast(struct afb_evtid *evtid, struct json_object *object);
+
+extern int afb_evt_watch_add_evtid(struct afb_evt_listener *listener, struct afb_evtid *evtid);
+extern int afb_evt_watch_sub_evtid(struct afb_evt_listener *listener, struct afb_evtid *evtid);
+
+extern void afb_evt_update_hooks();
+
+
+extern struct afb_event afb_evt_create_event(const char *fullname);
+extern const char *afb_evt_event_fullname(struct afb_event event);
 extern int afb_evt_event_id(struct afb_event event);
 
 extern int afb_evt_push(struct afb_event event, struct json_object *object);
@@ -47,4 +74,5 @@ extern int afb_evt_unhooked_push(struct afb_event event, struct json_object *obj
 extern int afb_evt_add_watch(struct afb_evt_listener *listener, struct afb_event event);
 extern int afb_evt_remove_watch(struct afb_evt_listener *listener, struct afb_event event);
 
-extern void afb_evt_update_hooks();
+extern struct afb_evtid *afb_evt_to_evtid(struct afb_event event);
+extern struct afb_event afb_evt_from_evtid(struct afb_evtid *evtid);