From 5ef271effacb83552f9ea56572c751c2f5a556b6 Mon Sep 17 00:00:00 2001 From: José Bollo Date: Fri, 27 Jul 2018 17:38:22 +0200 Subject: Add ability to provide binding settings Change-Id: Iab93a26340fa9743a58ca43cd903bbf31c783e5b Signed-off-by: Jose Bollo --- include/afb/afb-api-x3-itf.h | 4 ++++ include/afb/afb-api-x3.h | 22 ++++++++++++++++++++-- include/afb/afb-binding-predefs.h | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) (limited to 'include/afb') diff --git a/include/afb/afb-api-x3-itf.h b/include/afb/afb-api-x3-itf.h index b8cfadf6..ca8fa71a 100644 --- a/include/afb/afb-api-x3-itf.h +++ b/include/afb/afb-api-x3-itf.h @@ -261,6 +261,10 @@ struct afb_api_x3_itf /** delete the api */ int (*delete_api)( struct afb_api_x3 *api); + + /** settings of the api */ + struct json_object *(*settings)( + struct afb_api_x3 *api); }; /** @} */ diff --git a/include/afb/afb-api-x3.h b/include/afb/afb-api-x3.h index 03461350..98aaaa1e 100644 --- a/include/afb/afb-api-x3.h +++ b/include/afb/afb-api-x3.h @@ -357,7 +357,7 @@ int afb_api_x3_queue_job( * Check that it requires the API of 'name'. * If 'initialized' is not zero it request the API to be * initialized, implying its initialization if needed. - * + * * Calling this function is only allowed within init. * * A single request allows to require multiple apis. @@ -581,7 +581,7 @@ struct afb_api_x3 *afb_api_x3_new_api( * @see afb_api_x3_add_verb * @see afb_api_x3_set_verbs_v3 */ -static inline +static inline int afb_api_x3_set_verbs_v2( struct afb_api_x3 *api, const struct afb_verb_v2 *verbs) @@ -941,4 +941,22 @@ int afb_api_x3_delete_api( return api->itf->delete_api(api); } +/** + * Settings of the api. + * + * Get the settings of the API. The settings are recorded + * as a JSON object. The returned object should not be modified. + * It MUST NOT be released using json_object_put. + * + * @param api the api whose settings are required + * + * @returns The setting object. + */ +static inline +struct json_object *afb_api_x3_settings( + struct afb_api_x3 *api) +{ + return api->itf->settings(api); +} + /** @} */ diff --git a/include/afb/afb-binding-predefs.h b/include/afb/afb-binding-predefs.h index 791374b9..56ac504b 100644 --- a/include/afb/afb-binding-predefs.h +++ b/include/afb/afb-binding-predefs.h @@ -331,6 +331,7 @@ #define afb_api_x3_event_handler_del afb_api_event_handler_del #define afb_api_x3_require_class afb_api_require_class #define afb_api_x3_provide_class afb_api_provide_class +#define afb_api_x3_settings afb_api_settings #define AFB_API_ERROR AFB_API_ERROR_V3 #define AFB_API_WARNING AFB_API_WARNING_V3 -- cgit 1.2.3-korg