diff options
author | 2017-05-04 16:21:18 +0200 | |
---|---|---|
committer | 2017-05-04 16:34:04 +0200 | |
commit | 4be084408c6d3d7b7f90a2493829c8ce0cebb397 (patch) | |
tree | 55e15ee647417a2be87a6f98d474b3b1fddb886c /src/afb-ditf.c | |
parent | 8a5d14c58817b7ee03f8e22ba734fdd8cc2bc780 (diff) |
Prepare bindings version 2
Change-Id: Ic9e417d9a36f5da08883c3ded127d8350ff893cc
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-ditf.c')
-rw-r--r-- | src/afb-ditf.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/afb-ditf.c b/src/afb-ditf.c index fde9e043..e6b6857c 100644 --- a/src/afb-ditf.c +++ b/src/afb-ditf.c @@ -16,7 +16,7 @@ */ #define _GNU_SOURCE -#define NO_BINDING_VERBOSE_MACRO +#define AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO #include <string.h> #include <errno.h> @@ -199,8 +199,16 @@ static const struct afb_daemon_itf hooked_daemon_itf = { .queue_job = hooked_queue_job_cb }; -void afb_ditf_init(struct afb_ditf *ditf, const char *prefix) +void afb_ditf_init_v2(struct afb_ditf *ditf, const char *prefix) { + ditf->version = 2; + ditf->daemon.closure = ditf; + afb_ditf_rename(ditf, prefix); +} + +void afb_ditf_init_v1(struct afb_ditf *ditf, const char *prefix) +{ + ditf->version = 1; ditf->interface.verbosity = verbosity; ditf->interface.mode = AFB_MODE_LOCAL; ditf->interface.daemon.closure = ditf; @@ -215,9 +223,15 @@ void afb_ditf_rename(struct afb_ditf *ditf, const char *prefix) void afb_ditf_update_hook(struct afb_ditf *ditf) { - if (afb_hook_flags_ditf(ditf->prefix)) - ditf->interface.daemon.itf = &hooked_daemon_itf; - else - ditf->interface.daemon.itf = &daemon_itf; + int hooked = !!afb_hook_flags_ditf(ditf->prefix); + switch (ditf->version) { + case 1: + ditf->interface.daemon.itf = hooked ? &hooked_daemon_itf : &daemon_itf; + break; + default: + case 2: + ditf->daemon.itf = hooked ? &hooked_daemon_itf : &daemon_itf; + break; + } } |