X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-hook.c;h=38ecfdccddf02f1073819c35fdd746055f03f320;hb=5928e8fc14c2edabc0bc104fff7542819e06d45a;hp=92a4c829ab3ec8bea4831f4cc9f7814432b78d47;hpb=33e615ea0cc26131532f4615ef4a2034488fa48e;p=src%2Fapp-framework-binder.git diff --git a/src/afb-hook.c b/src/afb-hook.c index 92a4c829..38ecfdcc 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" @@ -281,14 +281,14 @@ static void hook_xreq_session_set_LOA_default_cb(void *closure, const struct afb _hook_xreq_(xreq, "session_set_LOA(%u) -> %d", level, result); } -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) +static void hook_xreq_subscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_eventid *eventid, 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(eventid), afb_evt_event_id(eventid), 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) +static void hook_xreq_unsubscribe_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, struct afb_eventid *eventid, 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(eventid), afb_evt_event_id(eventid), 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) @@ -354,6 +354,16 @@ static void hook_xreq_has_permission_default_cb(void *closure, const struct afb_ _hook_xreq_(xreq, "has_permission(%s) -> %d", permission, result); } +static void hook_xreq_get_application_id_default_cb(void *closure, const struct afb_hookid *hookid, const struct afb_xreq *xreq, char *result) +{ + _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, @@ -378,7 +388,9 @@ static struct afb_hook_xreq_itf hook_xreq_default_itf = { .hook_xreq_unstore = hook_xreq_unstore_default_cb, .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_has_permission = hook_xreq_has_permission_default_cb, + .hook_xreq_get_application_id = hook_xreq_get_application_id_default_cb, + .hook_xreq_context_make = hook_xreq_context_make_default_cb }; /****************************************************************************** @@ -468,15 +480,15 @@ int afb_hook_xreq_session_set_LOA(const struct afb_xreq *xreq, unsigned level, i return result; } -int afb_hook_xreq_subscribe(const struct afb_xreq *xreq, struct afb_event event, int result) +int afb_hook_xreq_subscribe(const struct afb_xreq *xreq, struct afb_eventid *eventid, int result) { - _HOOK_XREQ_(subscribe, xreq, event, result); + _HOOK_XREQ_(subscribe, xreq, eventid, result); return result; } -int afb_hook_xreq_unsubscribe(const struct afb_xreq *xreq, struct afb_event event, int result) +int afb_hook_xreq_unsubscribe(const struct afb_xreq *xreq, struct afb_eventid *eventid, int result) { - _HOOK_XREQ_(unsubscribe, xreq, event, result); + _HOOK_XREQ_(unsubscribe, xreq, eventid, result); return result; } @@ -532,6 +544,18 @@ int afb_hook_xreq_has_permission(const struct afb_xreq *xreq, const char *permis return result; } +char *afb_hook_xreq_get_application_id(const struct afb_xreq *xreq, char *result) +{ + _HOOK_XREQ_(get_application_id, xreq, 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 *****************************************************************************/ @@ -700,9 +724,9 @@ 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) +static void hook_ditf_event_make_cb(void *closure, const struct afb_hookid *hookid, const struct afb_export *export, const char *name, struct afb_eventid *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) @@ -828,7 +852,7 @@ void afb_hook_ditf_vverbose(const struct afb_export *export, int level, const ch _HOOK_DITF_(vverbose, export, level, file, line, function, fmt, args); } -struct afb_event afb_hook_ditf_event_make(const struct afb_export *export, const char *name, struct afb_event result) +struct afb_eventid *afb_hook_ditf_event_make(const struct afb_export *export, const char *name, struct afb_eventid *result) { _HOOK_DITF_(event_make, export, name, result); return result; @@ -1210,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 -> %s", result); +} + +static void hook_evt_addref_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) { - _hook_evt_(evt, id, "name"); + _hook_evt_(evt, id, "addref"); } -static void hook_evt_drop_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) +static void hook_evt_unref_default_cb(void *closure, const struct afb_hookid *hookid, const char *evt, int id) { - _hook_evt_(evt, id, "drop"); + _hook_evt_(evt, id, "unref"); } static struct afb_hook_evt_itf hook_evt_default_itf = { @@ -1227,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 }; /****************************************************************************** @@ -1277,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); } /******************************************************************************