X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-binder.git;a=blobdiff_plain;f=include%2Fafb%2Fafb-api-x3.h;h=b3cdf2fc0a41e150bd8614ad75a730bbf8ce4826;hp=9f06172b7e2b93ef3f2be2c376f64742512f4b0f;hb=65353dce81a629e042800bb7b86fcd869a76727e;hpb=525e9eaa644ca92fad23adfbb7c3119ae8b57a30 diff --git a/include/afb/afb-api-x3.h b/include/afb/afb-api-x3.h index 9f06172b..b3cdf2fc 100644 --- a/include/afb/afb-api-x3.h +++ b/include/afb/afb-api-x3.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016, 2017, 2018 "IoT.bzh" + * Copyright (C) 2015-2020 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -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. @@ -549,9 +549,9 @@ int afb_api_x3_call_sync_legacy( * @param info the brief description of the new api (can be NULL) * @param noconcurrency zero or not zero whether the new api is reentrant or not * @param preinit the pre-initialization function if any (can be NULL) - * @param closure the closure for the pre-initialization \ref preinit + * @param closure the closure for the pre-initialization preinit * - * @return 0 in case of success or -1 on failure with errno set + * @return the created api in case of success or NULL on error * * @see afb_api_x3_delete_api */ @@ -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) @@ -814,6 +814,9 @@ int afb_api_x3_event_handler_del( * 4. 'info' a string handling some info (can be NULL) * 5. 'api' the api * + * NOTE: For convenience, *json_object_put* is called on 'object' after the + * callback returns. So, it is wrong to call *json_object_put* in the callback. + * * @param api The api that makes the call * @param apiname The api name of the method to call * @param verb The verb name of the method to call @@ -821,7 +824,6 @@ int afb_api_x3_event_handler_del( * @param callback The to call on completion * @param closure The closure to pass to the callback * - * * @see afb_req_subcall * @see afb_req_subcall_sync * @see afb_api_x3_call_sync @@ -941,4 +943,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); +} + /** @} */