X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-monitor.c;h=4b1c0384dd2002a3fcd33a9be225eec3f77f5b27;hb=33e615ea0cc26131532f4615ef4a2034488fa48e;hp=7524d24eac3fc824c2d153419041210d79beda8b;hpb=4ecf37c1899349e6ef7ac08813ebb52fc80b2677;p=src%2Fapp-framework-binder.git diff --git a/src/afb-monitor.c b/src/afb-monitor.c index 7524d24e..4b1c0384 100644 --- a/src/afb-monitor.c +++ b/src/afb-monitor.c @@ -16,7 +16,6 @@ */ #define _GNU_SOURCE -#define AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO #include @@ -27,7 +26,7 @@ #include "afb-api.h" #include "afb-apiset.h" #include "afb-api-so-v2.h" -#include "afb-ditf.h" +#include "afb-evt.h" #include "afb-xreq.h" #include "afb-trace.h" #include "verbose.h" @@ -65,28 +64,28 @@ static int decode_verbosity(struct json_object *v) int level = -1; if (!wrap_json_unpack(v, "i", &level)) { - level = level < 0 ? 0 : level > 3 ? 3 : level; + level = level < Verbosity_Level_Error ? Verbosity_Level_Error : level > Verbosity_Level_Debug ? Verbosity_Level_Debug : level; } else if (!wrap_json_unpack(v, "s", &s)) { switch(*s&~' ') { case 'D': if (!strcasecmp(s, _debug_)) - level = 3; + level = Verbosity_Level_Debug; break; case 'I': if (!strcasecmp(s, _info_)) - level = 2; + level = Verbosity_Level_Info; break; case 'N': if (!strcasecmp(s, _notice_)) - level = 1; + level = Verbosity_Level_Notice; break; case 'W': if (!strcasecmp(s, _warning_)) - level = 1; + level = Verbosity_Level_Warning; break; case 'E': if (!strcasecmp(s, _error_)) - level = 0; + level = Verbosity_Level_Error; break; } } @@ -114,7 +113,7 @@ static void set_verbosity_to(const char *name, int level) if (!name || !name[0]) verbosity = level; else if (name[0] == '*' && !name[1]) - afb_apiset_enum(main_apiset, set_verbosity_to_all_cb, (void*)(intptr_t)level); + afb_apiset_enum(main_apiset, 1, set_verbosity_to_all_cb, (void*)(intptr_t)level); else afb_apiset_set_verbosity(main_apiset, name, level); } @@ -148,16 +147,17 @@ static void set_verbosity(struct json_object *spec) /** * Translate verbosity level to a protocol indication. - * @param level the verbosity + * @param level the verbosity * @return the encoded verbosity */ static struct json_object *encode_verbosity(int level) { switch(level) { - case 0: return json_object_new_string(_error_); - case 1: return json_object_new_string(_notice_); - case 2: return json_object_new_string(_info_); - case 3: return json_object_new_string(_debug_); + case Verbosity_Level_Error: return json_object_new_string(_error_); + case Verbosity_Level_Warning: return json_object_new_string(_warning_); + case Verbosity_Level_Notice: return json_object_new_string(_notice_); + case Verbosity_Level_Info: return json_object_new_string(_info_); + case Verbosity_Level_Debug: return json_object_new_string(_debug_); default: return json_object_new_int(level); } } @@ -187,7 +187,7 @@ static void get_verbosity_of(struct json_object *resu, const char *name) if (!name || !name[0]) json_object_object_add(resu, "", encode_verbosity(verbosity)); else if (name[0] == '*' && !name[1]) - afb_apiset_enum(main_apiset, get_verbosity_of_all_cb, resu); + afb_apiset_enum(main_apiset, 1, get_verbosity_of_all_cb, resu); else { l = afb_apiset_get_verbosity(main_apiset, name); if (l >= 0) @@ -239,14 +239,10 @@ static struct json_object *get_verbosity(struct json_object *spec) static void get_one_api(struct json_object *resu, const char *name, struct json_object *spec) { struct json_object *o; - struct afb_api api; - int rc; - rc = afb_apiset_lookup(main_apiset, name, &api); - if (!rc) { - o = api.itf->describe ? api.itf->describe(api.closure) : NULL; + o = afb_apiset_describe(main_apiset, name); + if (o || afb_apiset_lookup(main_apiset, name, 1)) json_object_object_add(resu, name, o); - } } /** @@ -287,7 +283,7 @@ static struct json_object *get_apis(struct json_object *spec) } else if (json_object_is_type(spec, json_type_string)) { get_one_api(resu, json_object_get_string(spec), NULL); } else if (json_object_get_boolean(spec)) { - afb_apiset_enum(main_apiset, get_apis_of_all_cb, resu); + afb_apiset_enum(main_apiset, 1, get_apis_of_all_cb, resu); } return resu; } @@ -349,13 +345,16 @@ static void f_trace(struct afb_req req) if (add) { rc = afb_trace_add(req, add, trace); if (rc) - return; + goto end; } if (drop) { rc = afb_trace_drop(req, drop, trace); if (rc) - return; + goto end; } afb_req_success(req, NULL, NULL); +end: + afb_apiset_update_hooks(main_apiset, NULL); + afb_evt_update_hooks(); }