X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fhs-proxy.cpp;h=ea8976c78e9c40c6dcd870192cf923b3cba67500;hb=refs%2Ftags%2F12.1.20;hp=33cfce3bf0bf964639321f408de0bf5486088150;hpb=f19cfe46d7172b512f06f5acf657b8d56e69a0b3;p=apps%2Fagl-service-homescreen.git diff --git a/src/hs-proxy.cpp b/src/hs-proxy.cpp index 33cfce3..ea8976c 100644 --- a/src/hs-proxy.cpp +++ b/src/hs-proxy.cpp @@ -43,6 +43,7 @@ const char _afm_main[] = "afm-main"; static void api_callback(void *closure, struct json_object *object, const char *error, const char *info, afb_api_t api) { AFB_INFO("asynchronous call, error=%s, info=%s, object=%s.", error, info, json_object_get_string(object)); + (void) api; struct closure_data *cdata = static_cast(closure); if (!cdata->hs_instance) { @@ -56,7 +57,7 @@ static void api_callback(void *closure, struct json_object *object, const char * /* if we have an error then we couldn't start the application so we remove it */ if (error) { - clientManager->removeClientCtxt(cdata->clientCtx); + AFB_INFO("asynchronous call, removing client %s", cdata->appid.c_str()); clientManager->removeClient(cdata->appid); } @@ -122,6 +123,23 @@ int HS_AfmMainProxy::runnables(afb_api_t api, struct json_object **object) return api_call_sync(api, _afm_main, __FUNCTION__, nullptr, object); } +/** + * get running application list + * + * #### Parameters + * - api : the api serving the request + * - object : return the details of appid + * + * #### Return + * 0 : success + * 1 : fail + * + */ +int HS_AfmMainProxy::ps(afb_api_t api, struct json_object **object) +{ + return api_call_sync(api, _afm_main, "runners", nullptr, object); +} + /** * get details of application * @@ -167,7 +185,7 @@ void HS_AfmMainProxy::start(struct hs_instance *instance, afb_req_t request, con * and client context there. We pass the closure_data with the client context * and the application id to remove it. */ - if (!instance) + if (!instance || id.empty()) return; cdata = static_cast(calloc(1, sizeof(*cdata))); @@ -179,12 +197,6 @@ void HS_AfmMainProxy::start(struct hs_instance *instance, afb_req_t request, con return; } - cdata->clientCtx = clientManager->createClientCtxt(request, id); - HS_Client *client = clientManager->addClient(request, id); - if (client) { - if (client->handleRequest(request, "subscribe")) - AFB_WARNING("Failed to handle subcribe\n"); - } - + clientManager->addClient(request, id); api_call(request->api, _afm_main, __FUNCTION__, json_object_new_string(id.c_str()), cdata); }