/*
- * Copyright (C) 2015, 2016 "IoT.bzh"
+ * Copyright (C) 2015, 2016, 2017 IoT.bzh
* Author "Fulup Ar Foll"
*
* Licensed under the Apache License, Version 2.0 (the "License");
#include <assert.h>
#include <json-c/json.h>
+#define AFB_BINDING_VERSION 1
#include <afb/afb-binding.h>
#include "utils-jbus.h"
static const char _install_[] = "install";
static const char _local_[] = "local";
static const char _mode_[] = "mode";
+static const char _once_[] = "once";
+static const char _pause_[] = "pause";
static const char _remote_[] = "remote";
+static const char _resume_[] = "resume";
static const char _runid_[] = "runid";
static const char _runnables_[] = "runnables";
static const char _runners_[] = "runners";
static const char _stop_[] = "stop";
static const char _terminate_[] = "terminate";
static const char _uninstall_[] = "uninstall";
-static const char _uri_[] = "uri";
static const struct afb_binding_interface *binder;
/*
* Callback for replies made by 'embed_call_void'.
*/
-static void embed_call_void_callback(int status, struct json_object *obj, struct memo *memo)
+static void embed_call_void_callback(int iserror, struct json_object *obj, struct memo *memo)
{
DEBUG(binder, "(afm-main-binding) %s(true) -> %s\n", memo->method,
obj ? json_object_to_json_string(obj) : "NULL");
- if (obj == NULL) {
- memo_fail(memo, "framework daemon failure");
+ if (iserror) {
+ memo_fail(memo, obj ? json_object_get_string(obj) : "framework daemon failure");
} else {
memo_success(memo, embed(memo->method, json_object_get(obj)), NULL);
}
/*
* Callback for replies made by 'call_appid' and 'call_runid'.
*/
-static void call_xxxid_callback(int status, struct json_object *obj, struct memo *memo)
+static void call_xxxid_callback(int iserror, struct json_object *obj, struct memo *memo)
{
DEBUG(binder, "(afm-main-binding) %s -> %s\n", memo->method,
obj ? json_object_to_json_string(obj) : "NULL");
- if (obj == NULL) {
- memo_fail(memo, "framework daemon failure");
+ if (iserror) {
+ memo_fail(memo, obj ? json_object_get_string(obj) : "framework daemon failure");
} else {
memo_success(memo, json_object_get(obj), NULL);
}
call_appid(request, _detail_);
}
-static void start_callback(int status, struct json_object *obj, struct memo *memo)
+static void start_callback(int iserror, struct json_object *obj, struct memo *memo)
{
DEBUG(binder, "(afm-main-binding) %s -> %s\n", memo->method,
obj ? json_object_to_json_string(obj) : "NULL");
- if (obj == NULL) {
- memo_fail(memo, "framework daemon failure");
+ if (iserror) {
+ memo_fail(memo, obj ? json_object_get_string(obj) : "framework daemon failure");
} else {
obj = json_object_get(obj);
if (json_object_get_type(obj) == json_type_int)
free(query);
}
+static void once(struct afb_req request)
+{
+ call_appid(request, _once_);
+}
+
static void terminate(struct afb_req request)
{
call_runid(request, _terminate_);
}
-static void stop(struct afb_req request)
+static void pause(struct afb_req request)
{
- call_runid(request, _stop_);
+ call_runid(request, _pause_);
}
-static void continue_(struct afb_req request)
+static void resume(struct afb_req request)
{
- call_runid(request, _continue_);
+ call_runid(request, _resume_);
}
static void runners(struct afb_req request)
call_runid(request, _state_);
}
-static void install_callback(int status, struct json_object *obj, struct memo *memo)
+static void install_callback(int iserror, struct json_object *obj, struct memo *memo)
{
struct json_object *added;
- if (obj == NULL) {
- memo_fail(memo, "framework daemon failure");
+ if (iserror) {
+ memo_fail(memo, obj ? json_object_get_string(obj) : "framework daemon failure");
} else {
if (json_object_object_get_ex(obj, _added_, &added))
obj = added;
{_runnables_, AFB_SESSION_CHECK, runnables, "Get list of runnable applications"},
{_detail_ , AFB_SESSION_CHECK, detail, "Get the details for one application"},
{_start_ , AFB_SESSION_CHECK, start, "Start an application"},
+ {_once_ , AFB_SESSION_CHECK, once, "Start once an application"},
{_terminate_, AFB_SESSION_CHECK, terminate, "Terminate a running application"},
- {_stop_ , AFB_SESSION_CHECK, stop, "Stop (pause) a running application"},
- {_continue_ , AFB_SESSION_CHECK, continue_, "Continue (resume) a stopped application"},
+ {_pause_ , AFB_SESSION_CHECK, pause, "Pause a running application"},
+ {_resume_ , AFB_SESSION_CHECK, resume, "Resume a paused application"},
+ {_stop_ , AFB_SESSION_CHECK, pause, "Obsolete since 2016/11/08, use 'pause' instead"},
+ {_continue_ , AFB_SESSION_CHECK, resume, "Obsolete since 2016/11/08, use 'resume' instead"},
{_runners_ , AFB_SESSION_CHECK, runners, "Get the list of running applications"},
{_state_ , AFB_SESSION_CHECK, state, "Get the state of a running application"},
{_install_ , AFB_SESSION_CHECK, install, "Install an application using a widget file"},