X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=blobdiff_plain;f=src%2Fafb-api.h;h=70bf3c3431e9e7ac2e8148251b5e51e4f86c4904;hp=ff1bc108805f1cc05e2202283af7e8902433333b;hb=65353dce81a629e042800bb7b86fcd869a76727e;hpb=3535d4cb73628c720da1bf74627ded2aec6f2ca1 diff --git a/src/afb-api.h b/src/afb-api.h index ff1bc108..70bf3c34 100644 --- a/src/afb-api.h +++ b/src/afb-api.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017 "IoT.bzh" + * Copyright (C) 2015-2020 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,23 +24,28 @@ struct json_object; struct afb_api_itf { void (*call)(void *closure, struct afb_xreq *xreq); - int (*service_start)(void *closure, int share_session, int onneed, struct afb_apiset *apiset); + int (*service_start)(void *closure); +#if WITH_AFB_HOOK void (*update_hooks)(void *closure); - int (*get_verbosity)(void *closure); - void (*set_verbosity)(void *closure, int level); - struct json_object *(*describe)(void *closure); +#endif + int (*get_logmask)(void *closure); + void (*set_logmask)(void *closure, int level); + void (*describe)(void *closure, void (*describecb)(void *, struct json_object *), void *clocb); + void (*unref)(void *closure); }; -struct afb_api +struct afb_api_item { void *closure; struct afb_api_itf *itf; const void *group; }; -extern int afb_api_is_valid_name(const char *name, int hookable); +extern int afb_api_is_valid_name(const char *name); + +static inline int afb_api_is_public(const char *name) +{ + return *name != '.'; +} -#define AFB_API_UNHOOKABLE_PREFIX_CHAR '$' -#define AFB_API_UNHOOKABLE_PREFIX_STRING "$" -#define afb_api_is_hookable(api) ((api)[0] != AFB_API_UNHOOKABLE_PREFIX_CHAR)