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<struct closure_data *>(closure);
if (!cdata->hs_instance) {
/* 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);
}
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
*
* 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<struct closure_data *>(calloc(1, sizeof(*cdata)));
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);
}