X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-hook.c;h=12cf7a129ee49fd2894b2e05e61a67797a03db9f;hb=ae5d707f9348b50d44724ec2b091f4528ff0a72b;hp=188aabae270e7d7b03c089cd592b3a5134cf2eb0;hpb=15d0dae1cd6ab982137a7c2848de9303a9c969f0;p=src%2Fapp-framework-binder.git diff --git a/src/afb-hook.c b/src/afb-hook.c index 188aabae..12cf7a12 100644 --- a/src/afb-hook.c +++ b/src/afb-hook.c @@ -28,8 +28,8 @@ #include -#include -#include +#include +#include #include "afb-context.h" #include "afb-hook.h" @@ -283,12 +283,12 @@ static void hook_xreq_session_set_LOA_default_cb(void *closure, const struct afb static void hook_xreq_subscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_event event, int result) { - _hook_xreq_(xreq, "subscribe(%s:%d) -> %d", afb_evt_event_name(event), afb_evt_event_id(event), result); + _hook_xreq_(xreq, "subscribe(%s:%d) -> %d", afb_evt_event_fullname(event), afb_evt_event_id(event), result); } static void hook_xreq_unsubscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_event event, int result) { - _hook_xreq_(xreq, "unsubscribe(%s:%d) -> %d", afb_evt_event_name(event), afb_evt_event_id(event), result); + _hook_xreq_(xreq, "unsubscribe(%s:%d) -> %d", afb_evt_event_fullname(event), afb_evt_event_id(event), result); } static void hook_xreq_subcall_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, const char *api, const char *verb, struct json_object *args) @@ -359,6 +359,11 @@ static void hook_xreq_get_application_id_default_cb(void *closure, const struct _hook_xreq_(xreq, "get_application_id() -> %s", result); } +static void hook_xreq_context_make_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, int replace, void *(*create_value)(void*), void (*free_value)(void*), void *create_closure, void *result) +{ + _hook_xreq_(xreq, "context_make(replace=%s, %p, %p, %p) -> %p", replace?"yes":"no", create_value, free_value, create_closure, result); +} + static struct afb_hook_xreq_itf hook_xreq_default_itf = { .hook_xreq_begin = hook_xreq_begin_default_cb, .hook_xreq_end = hook_xreq_end_default_cb, @@ -384,7 +389,8 @@ static struct afb_hook_xreq_itf hook_xreq_default_itf = { .hook_xreq_subcall_req = hook_xreq_subcall_req_default_cb, .hook_xreq_subcall_req_result = hook_xreq_subcall_req_result_default_cb, .hook_xreq_has_permission = hook_xreq_has_permission_default_cb, - .hook_xreq_get_application_id = hook_xreq_get_application_id_default_cb + .hook_xreq_get_application_id = hook_xreq_get_application_id_default_cb, + .hook_xreq_context_make = hook_xreq_context_make_default_cb }; /****************************************************************************** @@ -544,6 +550,12 @@ char *afb_hook_xreq_get_application_id(const struct afb_xreq *xreq, char *result return result; } +void *afb_hook_xreq_context_make(const struct afb_xreq *xreq, int replace, void *(*create_value)(void*), void (*free_value)(void*), void *create_closure, void *result) +{ + _HOOK_XREQ_(context_make, xreq, replace, create_value, free_value, create_closure, result); + return result; +} + /****************************************************************************** * section: hooking xreqs *****************************************************************************/ @@ -714,7 +726,7 @@ static void hook_ditf_vverbose_cb(void *closure, const struct afb_hookid *hookid static void hook_ditf_event_make_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *name, struct afb_event result) { - _hook_ditf_(export, "event_make(%s) -> %s:%d", name, afb_evt_event_name(result), afb_evt_event_id(result)); + _hook_ditf_(export, "event_make(%s) -> %s:%d", name, afb_evt_event_fullname(result), afb_evt_event_id(result)); } static void hook_ditf_rootdir_get_fd_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, int result) @@ -1222,14 +1234,19 @@ static void hook_evt_broadcast_after_default_cb(void *closure, const struct afb_ _hook_evt_(evt, id, "broadcast.after(%s) -> %d", json_object_to_json_string(obj), result); } -static void hook_evt_name_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) +static void hook_evt_name_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id, const char *result) { - _hook_evt_(evt, id, "name"); + _hook_evt_(evt, id, "name -> %s", result); } -static void hook_evt_drop_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) +static void hook_evt_addref_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) { - _hook_evt_(evt, id, "drop"); + _hook_evt_(evt, id, "addref"); +} + +static void hook_evt_unref_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) +{ + _hook_evt_(evt, id, "unref"); } static struct afb_hook_evt_itf hook_evt_default_itf = { @@ -1239,7 +1256,8 @@ static struct afb_hook_evt_itf hook_evt_default_itf = { .hook_evt_broadcast_before = hook_evt_broadcast_before_default_cb, .hook_evt_broadcast_after = hook_evt_broadcast_after_default_cb, .hook_evt_name = hook_evt_name_default_cb, - .hook_evt_drop = hook_evt_drop_default_cb + .hook_evt_addref = hook_evt_addref_default_cb, + .hook_evt_unref = hook_evt_unref_default_cb }; /****************************************************************************** @@ -1289,14 +1307,19 @@ int afb_hook_evt_broadcast_after(const char *evt, int id, struct json_object *ob return result; } -void afb_hook_evt_name(const char *evt, int id) +void afb_hook_evt_name(const char *evt, int id, const char *result) +{ + _HOOK_EVT_(name, evt, id, result); +} + +void afb_hook_evt_addref(const char *evt, int id) { - _HOOK_EVT_(name, evt, id); + _HOOK_EVT_(addref, evt, id); } -void afb_hook_evt_drop(const char *evt, int id) +void afb_hook_evt_unref(const char *evt, int id) { - _HOOK_EVT_(drop, evt, id); + _HOOK_EVT_(unref, evt, id); } /******************************************************************************