X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=bindings%2Fsamples%2Fave.c;h=569245eb4a516ff529b28187e019e1b3a156f8dc;hb=dffe593fd0eed968ed693b58d0ed3698241f73a8;hp=3ddfda624ab09af4d67cf063b113343fba8b4598;hpb=9a304ebddac4deb4992ea931ea1131b639798b3b;p=src%2Fapp-framework-binder.git diff --git a/bindings/samples/ave.c b/bindings/samples/ave.c index 3ddfda62..569245eb 100644 --- a/bindings/samples/ave.c +++ b/bindings/samples/ave.c @@ -29,7 +29,7 @@ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; struct event { struct event *next; - struct afb_eventid *eventid; + afb_eventid *eventid; char tag[1]; }; @@ -415,7 +415,7 @@ static void onevent(afb_dynapi *dynapi, const char *event, struct json_object *o { AFB_DYNAPI_NOTICE(dynapi, "received event %s(%s) by AVE(%s)", event, json_object_to_json_string(object), - (const char*)dynapi->userdata); + (const char*)afb_dynapi_get_userdata(dynapi)); } // NOTE: this sample does not use session to keep test a basic as possible @@ -447,19 +447,32 @@ static const struct { { .verb=NULL} }; +static void pingoo(afb_req req) +{ + json_object *args = afb_req_json(req); + afb_req_success_f(req, json_object_get(args), "You reached pingoo \\o/ nice args: %s", json_object_to_json_string(args)); +} + +static const afb_verb_v2 verbsv2[]= { + { .verb="pingoo", .callback=pingoo }, + { .verb="ping", .callback=pingoo }, + { .verb=NULL} +}; + static const char *apis[] = { "ave", "hi", "salut", NULL }; -static int api_preinit(void *closure, afb_dynapi *dynapi) +static int build_api(void *closure, afb_dynapi *dynapi) { int i, rc; - dynapi->userdata = closure; - AFB_DYNAPI_NOTICE(dynapi, "dynamic binding AVE(%s) comes to live", (const char*)dynapi->userdata); + afb_dynapi_set_userdata(dynapi, closure); + AFB_DYNAPI_NOTICE(dynapi, "dynamic binding AVE(%s) comes to live", (const char*)afb_dynapi_get_userdata(dynapi)); afb_dynapi_on_init(dynapi, init); afb_dynapi_on_event(dynapi, onevent); + rc = afb_dynapi_set_verbs_v2(dynapi, verbsv2); for (i = rc = 0; verbs[i].verb && rc >= 0 ; i++) { - rc = afb_dynapi_add_verb(dynapi, verbs[i].verb, NULL, verbs[i].callback, NULL, 0); + rc = afb_dynapi_add_verb(dynapi, verbs[i].verb, NULL, verbs[i].callback, (void*)(intptr_t)i, NULL, 0); } afb_dynapi_seal(dynapi); return rc; @@ -470,7 +483,9 @@ int afbBindingVdyn(afb_dynapi *dynapi) int i, rc; for (i = 0; apis[i] ; i++) { - rc = afb_dynapi_new_api(dynapi, apis[i], NULL, api_preinit, (void*)apis[i]); + rc = afb_dynapi_new_api(dynapi, apis[i], NULL, 0, build_api, (void*)apis[i]); + if (rc < 0) + AFB_DYNAPI_ERROR(dynapi, "can't create API %s", apis[i]); } return 0; }