X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=plugins%2Fafm-main-plugin%2Fafm-main-plugin.c;h=786468a199c257f09c46456b2450bd91b220f6e8;hb=031601a0c5aa944493660f991d66702cc7e52755;hp=c6408a5130e078be9424732e8684e1268de717c2;hpb=3d705a894b13759904b0601f8cdef1f2c226d8cc;p=src%2Fapp-framework-binder.git diff --git a/plugins/afm-main-plugin/afm-main-plugin.c b/plugins/afm-main-plugin/afm-main-plugin.c index c6408a51..786468a1 100644 --- a/plugins/afm-main-plugin/afm-main-plugin.c +++ b/plugins/afm-main-plugin/afm-main-plugin.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 "IoT.bzh" + * Copyright (C) 2015, 2016 "IoT.bzh" * Author "Fulup Ar Foll" * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,9 +19,9 @@ #include #include #include -#include +#include -#include "afb-plugin.h" +#include #include "utils-jbus.h" @@ -45,8 +45,8 @@ static const char _terminate_[] = "terminate"; static const char _uninstall_[] = "uninstall"; static const char _uri_[] = "uri"; -static const struct AFB_interface *interface; -static struct afb_evmgr evmgr; +static const struct AFB_interface *afb_interface; +static struct afb_event_sender event_sender; static struct jbus *jbus; @@ -62,13 +62,14 @@ static struct memo *make_memo(struct afb_req request, const char *method) if (memo != NULL) { memo->request = request; memo->method = method; + afb_req_addref(request); } return memo; } static void application_list_changed(const char *data, void *closure) { - afb_evmgr_push(evmgr, "application-list-changed", NULL); + afb_event_sender_push(event_sender, "application-list-changed", NULL); } static struct json_object *embed(const char *tag, struct json_object *obj) @@ -95,7 +96,7 @@ static struct json_object *embed(const char *tag, struct json_object *obj) static void embed_call_void_callback(int status, struct json_object *obj, struct memo *memo) { - if (interface->verbosity) + if (afb_interface->verbosity) fprintf(stderr, "(afm-main-plugin) %s(true) -> %s\n", memo->method, obj ? json_object_to_json_string(obj) : "NULL"); if (obj == NULL) { @@ -109,6 +110,7 @@ static void embed_call_void_callback(int status, struct json_object *obj, struct afb_req_success(memo->request, obj, NULL); } } + afb_req_unref(memo->request); free(memo); } @@ -125,7 +127,7 @@ static void embed_call_void(struct afb_req request, const char *method) static void call_appid_callback(int status, struct json_object *obj, struct memo *memo) { - if (interface->verbosity) + if (afb_interface->verbosity) fprintf(stderr, "(afm-main-plugin) %s -> %s\n", memo->method, obj ? json_object_to_json_string(obj) : "NULL"); if (obj == NULL) { @@ -134,6 +136,7 @@ static void call_appid_callback(int status, struct json_object *obj, struct memo obj = json_object_get(obj); afb_req_success(memo->request, obj, NULL); } + afb_req_unref(memo->request); free(memo); } @@ -168,7 +171,7 @@ static void call_runid(struct afb_req request, const char *method) return; } obj = jbus_call_sj_sync(jbus, method, id); - if (interface->verbosity) + if (afb_interface->verbosity) fprintf(stderr, "(afm-main-plugin) %s(%s) -> %s\n", method, id, obj ? json_object_to_json_string(obj) : "NULL"); if (obj == NULL) { @@ -207,7 +210,7 @@ static void start(struct afb_req request) /* get the mode */ mode = afb_req_value(request, _mode_); if (mode == NULL || !strcmp(mode, _auto_)) { - mode = interface->mode == AFB_MODE_REMOTE ? _remote_ : _local_; + mode = afb_interface->mode == AFB_MODE_REMOTE ? _remote_ : _local_; } /* create the query */ @@ -219,7 +222,7 @@ static void start(struct afb_req request) /* calls the service */ obj = jbus_call_sj_sync(jbus, _start_, query); - if (interface->verbosity) + if (afb_interface->verbosity) fprintf(stderr, "(afm-main-plugin) start(%s) -> %s\n", query, obj ? json_object_to_json_string(obj) : "NULL"); free(query); @@ -284,7 +287,7 @@ static void install(struct afb_req request) } obj = jbus_call_sj_sync(jbus, _install_, query); - if (interface->verbosity) + if (afb_interface->verbosity) fprintf(stderr, "(afm-main-plugin) install(%s) -> %s\n", query, obj ? json_object_to_json_string(obj) : "NULL"); free(query); @@ -308,7 +311,7 @@ static void uninstall(struct afb_req request) call_appid(request, _uninstall_); } -static const struct AFB_restapi plug_apis[] = +static const struct AFB_verb_desc_v1 verbs[] = { {_runnables_, AFB_SESSION_CHECK, runnables, "Get list of runnable applications"}, {_detail_ , AFB_SESSION_CHECK, detail, "Get the details for one application"}, @@ -324,21 +327,23 @@ static const struct AFB_restapi plug_apis[] = }; static const struct AFB_plugin plug_desc = { - .type = AFB_PLUGIN_JSON, - .info = "Application Framework Master Service", - .prefix = "afm-main", - .apis = plug_apis + .type = AFB_PLUGIN_VERSION_1, + .v1 = { + .info = "Application Framework Master Service", + .prefix = "afm-main", + .verbs = verbs + } }; -const struct AFB_plugin *pluginRegister(const struct AFB_interface *itf) +const struct AFB_plugin *pluginAfbV1Register(const struct AFB_interface *itf) { int rc; struct sd_bus *sbus; /* records the interface */ - assert (interface == NULL); - interface = itf; - evmgr = afb_daemon_get_evmgr(itf->daemon); + assert (afb_interface == NULL); + afb_interface = itf; + event_sender = afb_daemon_get_event_sender(itf->daemon); /* creates the jbus for accessing afm-user-daemon */ sbus = afb_daemon_get_user_bus(itf->daemon);