X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-apiset.c;h=18104a93de571fa0b66437e725cbfaf78b4affef;hb=170aef20bc3a59d5139c2eff8794d9ba4c83a2e5;hp=410ff27618c98e075ce5da77c9d6ee088f6b0e2a;hpb=16899582de97ffa492768e5d96cec813f44417ea;p=src%2Fapp-framework-binder.git diff --git a/src/afb-apiset.c b/src/afb-apiset.c index 410ff276..18104a93 100644 --- a/src/afb-apiset.c +++ b/src/afb-apiset.c @@ -31,8 +31,6 @@ #include "afb-xreq.h" #include "jobs.h" -#include - #define INCR 8 /* CAUTION: must be a power of 2 */ /** @@ -251,7 +249,7 @@ int afb_apiset_add(struct afb_apiset *set, const char *name, struct afb_api api) apis->name = name; set->count++; - NOTICE("API %s added", name); + INFO("API %s added", name); return 0; @@ -308,6 +306,17 @@ int afb_apiset_lookup(struct afb_apiset *set, const char *name, struct afb_api * return -1; } +/** + * Check whether the 'set' has the API of 'name' + * @param set the set of API + * @param name the name of the API to get + * @return 1 if the api exist or 0 otherwise + */ +int afb_apiset_has(struct afb_apiset *set, const char *name) +{ + return !!search(set, name); +} + /** * Get from the 'set' the API of 'name' in 'api' with fallback to subset or default api * @param set the set of API @@ -361,7 +370,7 @@ static int start_api(struct afb_apiset *set, struct api_desc *api, int share_ses return -1; } - NOTICE("API %s starting...", api->name); + INFO("API %s starting...", api->name); if (api->api.itf->service_start) { api->status = EBUSY; rc = api->api.itf->service_start(api->api.closure, share_session, onneed, set); @@ -496,9 +505,10 @@ void afb_apiset_set_verbosity(struct afb_apiset *set, const char *name, int leve } /** - * Set the verbosity level of the 'api' + * Get the verbosity level of the 'api' * @param set the api set - * @param name the api to set (NULL set all) + * @param name the api to get + * @return the verbosity level or -1 in case of error */ int afb_apiset_get_verbosity(struct afb_apiset *set, const char *name) { @@ -509,12 +519,27 @@ int afb_apiset_get_verbosity(struct afb_apiset *set, const char *name) errno = ENOENT; return -1; } + if (!i->api.itf->get_verbosity) return verbosity; return i->api.itf->get_verbosity(i->api.closure); } +/** + * Get the description of the API of 'name' + * @param set the api set + * @param name the api whose description is required + * @return the description or NULL + */ +struct json_object *afb_apiset_describe(struct afb_apiset *set, const char *name) +{ + const struct api_desc *i; + + i = name ? search(set, name) : NULL; + return i && i->api.itf->describe ? i->api.itf->describe(i->api.closure) : NULL; +} + /** * Get the list of api names * @param set the api set