-#if WITH_AFB_HOOK
-/*
- * Pushes the event 'evtid' with 'obj' to its listeners
- * 'obj' is released (like json_object_put)
- * Emits calls to hooks.
- * Returns the count of listener taht received the event.
- */
-int afb_evt_evtid_hooked_push(struct afb_evtid *evtid, struct json_object *obj)
-{
-
- int result;
-
- /* lease the object */
- json_object_get(obj);
-
- /* hook before push */
- if (evtid->hookflags & afb_hook_flag_evt_push_before)
- afb_hook_evt_push_before(evtid->fullname, evtid->id, obj);
-
- /* push */
- result = afb_evt_evtid_push(evtid, obj);
-
- /* hook after push */
- if (evtid->hookflags & afb_hook_flag_evt_push_after)
- afb_hook_evt_push_after(evtid->fullname, evtid->id, obj, result);
-
- /* release the object */
- json_object_put(obj);
- return result;
-}
-
-/*
- * increment the reference count of the event 'evtid'
- */
-struct afb_evtid *afb_evt_evtid_hooked_addref(struct afb_evtid *evtid)
-{
- if (evtid->hookflags & afb_hook_flag_evt_addref)
- afb_hook_evt_addref(evtid->fullname, evtid->id);
- return afb_evt_evtid_addref(evtid);
-}
-
-/*
- * decrement the reference count of the event 'evtid'
- * and destroy it when the count reachs zero
- */
-void afb_evt_evtid_hooked_unref(struct afb_evtid *evtid)
-{
- if (evtid->hookflags & afb_hook_flag_evt_unref)
- afb_hook_evt_unref(evtid->fullname, evtid->id);
- afb_evt_evtid_unref(evtid);
-}
-
-/*
- * Returns the name associated to the event 'evtid'.
- */
-const char *afb_evt_evtid_hooked_name(struct afb_evtid *evtid)
-{
- const char *result = afb_evt_evtid_name(evtid);
- if (evtid->hookflags & afb_hook_flag_evt_name)
- afb_hook_evt_name(evtid->fullname, evtid->id, result);
- return result;
-}
-
-/*
- * update the hooks for events
- */
-void afb_evt_update_hooks()
-{
- struct afb_evtid *evtid;
-
- pthread_rwlock_rdlock(&events_rwlock);
- for (evtid = evtids ; evtid ; evtid = evtid->next) {
- evtid->hookflags = afb_hook_flags_evt(evtid->fullname);
- evtid->eventid.itf = evtid->hookflags ? &afb_evt_hooked_event_x2_itf : &afb_evt_event_x2_itf;
- }
- pthread_rwlock_unlock(&events_rwlock);
-}
-#endif
-