Update copyright dates
[src/app-framework-binder.git] / include / afb / afb-api-x3.h
index 0346135..b3cdf2f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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");
@@ -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)
@@ -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);
+}
+
 /** @} */