/*
- * Copyright (C) 2016, 2017, 2018 "IoT.bzh"
+ * Copyright (C) 2015-2020 "IoT.bzh"
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* 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.
* @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
*/
* @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)
* 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
* @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
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);
+}
+
/** @} */