bindings: adds ability to use data of applications
[src/app-framework-binder.git] / include / afb / afb-binding.h
index ac63d36..7d5da11 100644 (file)
@@ -147,6 +147,8 @@ struct afb_daemon_itf {
        struct sd_bus *(*get_system_bus)(void *closure);        /* gets the common systemd's system d-bus */
        void (*vverbose)(void*closure, int level, const char *file, int line, const char *fmt, va_list args);
        struct afb_event (*event_make)(void *closure, const char *name); /* creates an event of 'name' */
+       int (*rootdir_get_fd)(void *closure);
+       int (*rootdir_open_locale)(void *closure, const char *filename, int flags, const char *locale);
 };
 
 /*
@@ -205,7 +207,7 @@ static inline struct sd_bus *afb_daemon_get_system_bus(struct afb_daemon daemon)
  * 'object' can be NULL.
  * 'daemon' MUST be the daemon given in interface when activating the binding.
  *
- * For conveniency, the function calls 'json_object_put' for 'object'.
+ * For convenience, the function calls 'json_object_put' for 'object'.
  * Thus, in the case where 'object' should remain available after
  * the function returns, the function 'json_object_get' shall be used.
  *
@@ -236,7 +238,7 @@ static inline void afb_daemon_verbose(struct afb_daemon daemon, int level, const
 {
        va_list args;
        va_start(args, fmt);
-       return daemon.itf->vverbose(daemon.closure, level, file, line, fmt, args);
+       daemon.itf->vverbose(daemon.closure, level, file, line, fmt, args);
        va_end(args);
 }
 
@@ -259,3 +261,23 @@ static inline void afb_daemon_verbose(struct afb_daemon daemon, int level, const
 # endif
 #endif
 
+/*
+ * Get the root directory file descriptor. This file descriptor can
+ * be used with functions 'openat', 'fstatat', ...
+ */
+static inline int afb_daemon_rootdir_get_fd(struct afb_daemon daemon)
+{
+       return daemon.itf->rootdir_get_fd(daemon.closure);
+}
+
+/*
+ * Opens 'filename' within the root directory with 'flags' (see function openat)
+ * using the 'locale' definition (example: "jp,en-US") that can be NULL.
+ * Returns the file descriptor or -1 in case of error.
+ */
+static inline int afb_daemon_rootdir_open_locale(struct afb_daemon daemon, const char *filename, int flags, const char *locale)
+{
+       return daemon.itf->rootdir_open_locale(daemon.closure, filename, flags, locale);
+}
+
+