From 3ffd607b9321c9a7f1c483d4a5e5e4f9e5abbc03 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Bollo?= Date: Tue, 25 Apr 2017 16:04:12 +0200 Subject: [PATCH] Update the monitor interface for private feature MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I14caa33d2abad26bf244e93f7efe93206c6c50da Signed-off-by: José Bollo --- src/genskel/monitor-api.json | 13 +++++----- src/monitor-api.inc | 59 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 src/monitor-api.inc diff --git a/src/genskel/monitor-api.json b/src/genskel/monitor-api.json index 8f4a50ce..ed07c31c 100644 --- a/src/genskel/monitor-api.json +++ b/src/genskel/monitor-api.json @@ -9,14 +9,14 @@ "set": { "doc": "set various values", "permissions": { "$ref": "#/permissions/set" }, - "LOA": { "minimum": 2 }, + "LOA": { "minimum": 0 }, "request": { "$ref": "#/types/set-request" }, "response": { "$ref": "#/types/set-response" } }, "get": { "doc": "get the verbosity of apis", "permissions": { "$ref": "#/permissions/get-or-set" }, - "LOA": { "minimum": 1 }, + "LOA": { "minimum": 0 }, "request": { "$ref": "#/types/get-request" }, "response": { "$ref": "#/types/get-response" } } @@ -97,11 +97,12 @@ }, "meta-binding": { - "prefix": "", - "postfix": "_request_callback", - "start": "start_binding", + "prefix": "f_", + "postfix": "", + "start": null, "onevent": null, "init": null, - "scope": "extern" + "scope": "static", + "private": true } } diff --git a/src/monitor-api.inc b/src/monitor-api.inc new file mode 100644 index 00000000..8c216753 --- /dev/null +++ b/src/monitor-api.inc @@ -0,0 +1,59 @@ + +static const char _afb_description_v2_[] = + "{\"namespace\":\"urn:AGL:binding\",\"api\":\"monitor\",\"doc\":\"monitor" + " the bindings\",\"verbs\":{\"set\":{\"doc\":\"set various values\",\"per" + "missions\":{\"$ref\":\"#/permissions/set\"},\"LOA\":{\"minimum\":0},\"re" + "quest\":{\"$ref\":\"#/types/set-request\"},\"response\":{\"$ref\":\"#/ty" + "pes/set-response\"}},\"get\":{\"doc\":\"get the verbosity of apis\",\"pe" + "rmissions\":{\"$ref\":\"#/permissions/get-or-set\"},\"LOA\":{\"minimum\"" + ":0},\"request\":{\"$ref\":\"#/types/get-request\"},\"response\":{\"$ref\"" + ":\"#/types/get-response\"}}},\"permissions\":{\"get\":{\"permission\":\"" + "urn:AGL:permission::platform:monitor:get\"},\"set\":{\"permission\":\"ur" + "n:AGL:permission::platform:monitor:set\"},\"get-or-set\":{\"anyOf\":[{\"" + "$ref\":\"#/permissions/get\"},{\"$ref\":\"#/permissions/set\"}]}},\"type" + "s\":{\"set-request\":{\"type\":\"object\",\"properties\":{\"verbosity\":" + "{\"$ref\":\"#/types/set-verbosity\"}}},\"set-response\":{\"type\":\"obje" + "ct\"},\"set-verbosity\":{\"anyOf\":[{\"$ref\":\"#/types/verbosity-map\"}" + ",{\"$ref\":\"#/types/verbosity-level\"}]},\"get-request\":{\"type\":\"ob" + "ject\",\"properties\":{\"verbosity\":{\"$ref\":\"#/types/get-verbosity\"" + "},\"apis\":{\"$ref\":\"#/types/get-apis\"}}},\"get-response\":{\"type\":" + "\"object\",\"properties\":{\"verbosity\":{\"$ref\":\"#/types/verbosity-m" + "ap\"},\"apis\":{\"type\":\"object\"}}},\"get-verbosity\":{\"anyOf\":[{\"" + "type\":\"boolean\"},{\"type\":\"array\",\"items\":{\"type\":\"string\"}}" + ",{\"type\":\"object\"}]},\"get-apis\":{\"anyOf\":[{\"type\":\"boolean\"}" + ",{\"type\":\"array\",\"items\":{\"type\":\"string\"}},{\"type\":\"object" + "\"}]},\"verbosity-map\":{\"type\":\"object\",\"patternProperties\":{\"^." + "*$\":{\"$ref\":\"#/types/verbosity-level\"}}},\"verbosity-level\":{\"enu" + "m\":[\"debug\",3,\"info\",2,\"notice\",\"warning\",1,\"error\",0]}},\"me" + "ta-binding\":{\"prefix\":\"f_\",\"postfix\":\"\",\"start\":null,\"oneven" + "t\":null,\"init\":null,\"scope\":\"static\",\"private\":true}}" +; + +static void f_get(struct afb_req req); +static void f_set(struct afb_req req); + +static const struct afb_verb_v2 _afb_verbs_v2_[] = { + { + .verb = "get", + .callback = f_get, + .permissions = "urn:AGL:permission::platform:monitor:get or urn:AGL:permission::platform:monitor:set", + .session = AFB_SESSION_LOA_GE_0, + }, + { + .verb = "set", + .callback = f_set, + .permissions = "urn:AGL:permission::platform:monitor:set", + .session = AFB_SESSION_LOA_GE_0, + }, + { .verb = NULL } +}; + +static const struct afb_binding_v2 _afb_binding_v2_ = { + .api = "monitor", + .specification = _afb_description_v2_, + .verbs = _afb_verbs_v2_, + .init = NULL, + .start = NULL, + .onevent = NULL, +}; + -- 2.16.6