diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-06-02 09:13:06 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-06-02 17:05:37 +0200 |
commit | 8a30491d5e60239a338e485311a29c43398726e9 (patch) | |
tree | 890cc1512ca1804f6857d6b1519a35ca308a1f11 /include | |
parent | c6380108964e71f533d8c672bb9c217020a95e8d (diff) |
Add 'afb_daemon_require_api'
This solution is at this time the best one to allow
asynchronous calls within initialisation of bindings.
Change-Id: I21ba3a74b4e93eec238a11dd51bc6b58c483308d
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'include')
-rw-r--r-- | include/afb/afb-binding.h | 2 | ||||
-rw-r--r-- | include/afb/afb-daemon-common.h | 1 | ||||
-rw-r--r-- | include/afb/afb-daemon-v1.h | 10 | ||||
-rw-r--r-- | include/afb/afb-daemon-v2.h | 9 |
4 files changed, 22 insertions, 0 deletions
diff --git a/include/afb/afb-binding.h b/include/afb/afb-binding.h index 706ca813..ae700f41 100644 --- a/include/afb/afb-binding.h +++ b/include/afb/afb-binding.h @@ -163,6 +163,7 @@ typedef struct afb_service_itf afb_service_itf; #define afb_daemon_rootdir_get_fd afb_daemon_rootdir_get_fd_v1 #define afb_daemon_rootdir_open_locale afb_daemon_rootdir_open_locale_v1 #define afb_daemon_queue_job afb_daemon_queue_job_v1 +#define afb_daemon_require_api afb_daemon_require_api_v1 #define afb_service_call afb_service_call_v1 #define afb_service_call_sync afb_service_call_sync_v1 @@ -217,6 +218,7 @@ typedef struct afb_service_itf afb_service_itf; #define afb_daemon_rootdir_open_locale afb_daemon_rootdir_open_locale_v2 #define afb_daemon_queue_job afb_daemon_queue_job_v2 #define afb_daemon_unstore_req afb_daemon_unstore_req_v2 +#define afb_daemon_require_api afb_daemon_require_api_v2 #define afb_service_call afb_service_call_v2 #define afb_service_call_sync afb_service_call_sync_v2 diff --git a/include/afb/afb-daemon-common.h b/include/afb/afb-daemon-common.h index d3d1b3d3..1d576b9a 100644 --- a/include/afb/afb-daemon-common.h +++ b/include/afb/afb-daemon-common.h @@ -41,6 +41,7 @@ struct afb_daemon_itf int (*queue_job)(void *closure, void (*callback)(int signum, void *arg), void *argument, void *group, int timeout); void (*vverbose_v2)(void*closure, int level, const char *file, int line, const char * func, const char *fmt, va_list args); struct afb_req (*unstore_req)(void*closure, struct afb_stored_req *sreq); + int (*require_api)(void*closure, const char *name, int initialized); }; /* diff --git a/include/afb/afb-daemon-v1.h b/include/afb/afb-daemon-v1.h index 256c5fda..8f5ed2f9 100644 --- a/include/afb/afb-daemon-v1.h +++ b/include/afb/afb-daemon-v1.h @@ -163,3 +163,13 @@ static inline int afb_daemon_queue_job_v1(struct afb_daemon daemon, void (*callb { return daemon.itf->queue_job(daemon.closure, callback, argument, group, timeout); } + +/* + * Tells that it requires the API of "name" to exist + * and if 'initialized' is not null to be initialized. + * Returns 0 in case of success or -1 in case of error. + */ +static inline int afb_daemon_require_api_v1(struct afb_daemon daemon, const char *name, int initialized) +{ + return daemon.itf->require_api(daemon.closure, name, initialized); +} diff --git a/include/afb/afb-daemon-v2.h b/include/afb/afb-daemon-v2.h index 4c4c656d..481d3dec 100644 --- a/include/afb/afb-daemon-v2.h +++ b/include/afb/afb-daemon-v2.h @@ -141,3 +141,12 @@ static inline struct afb_req afb_daemon_unstore_req_v2(struct afb_stored_req *sr return afb_get_daemon_v2().itf->unstore_req(afb_get_daemon_v2().closure, sreq); } +/* + * Tells that it requires the API of "name" to exist + * and if 'initialized' is not null to be initialized. + * Returns 0 in case of success or -1 in case of error. + */ +static inline int afb_daemon_require_api_v2(const char *name, int initialized) +{ + return afb_get_daemon_v2().itf->require_api(afb_get_daemon_v2().closure, name, initialized); +} |