aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/wgt-json.c26
-rw-r--r--src/wgt-strings.c2
-rw-r--r--src/wgt-strings.h2
3 files changed, 30 insertions, 0 deletions
diff --git a/src/wgt-json.c b/src/wgt-json.c
index bb1ba55..f4212d0 100644
--- a/src/wgt-json.c
+++ b/src/wgt-json.c
@@ -387,6 +387,26 @@ static int add_required_api(struct json_object *targets, const struct wgt_desc_f
return add_targeted_params(targets, feat, actions);
}
+/* Treats the feature "provided_binding" */
+static int add_provided_binding(struct json_object *targets, const struct wgt_desc_feature *feat)
+{
+ static struct paramaction actions[] = {
+ { .name = string_sharp_target, .action = NULL, .closure = NULL }, /* TODO: should be an error! */
+ { .name = NULL, .action = add_param_array, .closure = (void*)string_provided_binding }
+ };
+ return add_targeted_params(targets, feat, actions);
+}
+
+/* Treats the feature "required_binding" */
+static int add_required_binding(struct json_object *targets, const struct wgt_desc_feature *feat)
+{
+ static struct paramaction actions[] = {
+ { .name = string_sharp_target, .action = NULL, .closure = NULL }, /* skip #target */
+ { .name = NULL, .action = add_param_array, .closure = (void*)string_required_binding }
+ };
+ return add_targeted_params(targets, feat, actions);
+}
+
/* Treats the feature "required_permission" */
static int add_required_permission(struct json_object *targets, const struct wgt_desc_feature *feat)
{
@@ -460,9 +480,15 @@ static struct json_object *to_json(const struct wgt_desc *desc)
else if (!strcmp(featname, string_provided_api)) {
rc2 = add_provided_api(targets, feat);
}
+ else if (!strcmp(featname, string_provided_binding)) {
+ rc2 = add_provided_binding(targets, feat);
+ }
else if (!strcmp(featname, string_required_api)) {
rc2 = add_required_api(targets, feat);
}
+ else if (!strcmp(featname, string_required_binding)) {
+ rc2 = add_required_binding(targets, feat);
+ }
else if (!strcmp(featname, string_required_permission)) {
rc2 = add_required_permission(targets, feat);
} else {
diff --git a/src/wgt-strings.c b/src/wgt-strings.c
index 9185ee9..5dc5e68 100644
--- a/src/wgt-strings.c
+++ b/src/wgt-strings.c
@@ -57,8 +57,10 @@ const char string_list[] = "list";
const char string_main[] = "main";
const char string_optional[] = "optional";
const char string_provided_api[] = "provided-api";
+const char string_provided_binding[] = "provided-binding";
const char string_provided_unit[] = "provided-unit";
const char string_required_api[] = "required-api";
+const char string_required_binding[] = "required-binding";
const char string_required_permission[] = "required-permission";
const char string_targets[] = "targets";
const char string_sharp_target[] = "#target";
diff --git a/src/wgt-strings.h b/src/wgt-strings.h
index 0a9c0e9..6f58db1 100644
--- a/src/wgt-strings.h
+++ b/src/wgt-strings.h
@@ -55,8 +55,10 @@ extern const char string_list[];
extern const char string_main[];
extern const char string_optional[];
extern const char string_provided_api[];
+extern const char string_provided_binding[];
extern const char string_provided_unit[];
extern const char string_required_api[];
+extern const char string_required_binding[];
extern const char string_required_permission[];
extern const char string_sharp_target[];
extern const char string_targets[];