afb-ditf: track daemon state
[src/app-framework-binder.git] / docs / afb-binding-references.md
index d0a9a6d..c266c2e 100644 (file)
@@ -142,6 +142,8 @@ Broadcasting an event send it to any possible listener.
  * Thus, in the case where 'object' should remain available after
  * the function returns, the function 'json_object_get' shall be used.
  *
+ * Calling this function is only forbidden during preinit.
+ *
  * Returns the count of clients that received the event.
  */
 int afb_daemon_broadcast_event(const char *name, struct json_object *object);
@@ -149,6 +151,8 @@ int afb_daemon_broadcast_event(const char *name, struct json_object *object);
 /*
  * Creates an event of 'name' and returns it.
  *
+ * Calling this function is only forbidden during preinit.
+ *
  * See afb_event_is_valid to check if there is an error.
  */
 struct afb_event afb_daemon_make_event(const char *name);
@@ -228,6 +232,7 @@ bindings at its initialization.
 /*
  * Tells that it requires the API of "name" to exist
  * and if 'initialized' is not null to be initialized.
+ * Calling this function is only allowed within init.
  * Returns 0 in case of success or -1 in case of error.
  */
 int afb_daemon_require_api(const char *name, int initialized)
@@ -677,6 +682,20 @@ Instead, you should use the macros:
 void afb_req_verbose(struct afb_req req, int level, const char *file, int line, const char * func, const char *fmt, ...);
 ```
 
+The function below allows a binding to check whether a client
+has a permission of not.
+
+```C
+
+/*
+ * Check whether the 'permission' is granted or not to the client
+ * identified by 'req'.
+ *
+ * Returns 1 if the permission is granted or 0 otherwise.
+ */
+int afb_req_has_permission(struct afb_req req, const char *permission);
+```
+
 ## Logging macros
 
 The following macros must be used for logging: