Provide conversions for afb_event and afb_req
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 22 Sep 2017 07:37:54 +0000 (09:37 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Mon, 9 Oct 2017 12:08:32 +0000 (14:08 +0200)
Provision is made here to convert, trivially:

 afb_event   ->   afb_eventid*
 afb_req     ->   afb_request*

The opposite conversions aren't provided to
favor new interfaces.

Change-Id: Ib67c2317f782e2edfd1ba0e49e10b321a3b770a3
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
include/afb/afb-event.h
include/afb/afb-req.h
src/afb-trace.c
src/afb-xreq.c

index c3686fd..2e7f6ab 100644 (file)
@@ -28,6 +28,14 @@ struct afb_event
        struct afb_eventid *closure;            /* the closure argument for functions of 'itf' */
 };
 
+/*
+ * Converts the 'event' to an afb_eventid.
+ */
+static inline struct afb_eventid *afb_event_to_eventid(struct afb_event event)
+{
+       return event.closure;
+}
+
 /*
  * Checks wether the 'event' is valid or not.
  *
index 71dd31d..6f98e90 100644 (file)
@@ -30,6 +30,14 @@ struct afb_req
        struct afb_request *closure;            /* the closure argument for functions of 'itf' */
 };
 
+/*
+ * Converts the 'req' to an afb_request.
+ */
+static inline struct afb_request *afb_req_to_request(struct afb_req req)
+{
+       return req.closure;
+}
+
 /*
  * Checks whether the request 'req' is valid or not.
  *
index 2c2bb52..4869d9a 100644 (file)
@@ -27,7 +27,8 @@
 #include <pthread.h>
 
 #include <json-c/json.h>
-#include <afb/afb-binding-v2.h>
+#define AFB_BINDING_VERSION 0
+#include <afb/afb-binding.h>
 
 #include "afb-hook.h"
 #include "afb-cred.h"
@@ -1088,6 +1089,7 @@ static struct tag *trace_get_tag(struct afb_trace *trace, const char *name, int
  */
 static struct event *trace_get_event(struct afb_trace *trace, const char *name, int alloc)
 {
+       struct afb_event e;
        struct event *event;
 
        /* search the event */
@@ -1098,7 +1100,8 @@ static struct event *trace_get_event(struct afb_trace *trace, const char *name,
        if (!event && alloc) {
                event = malloc(sizeof * event);
                if (event) {
-                       event->evtid = afb_evt_to_evtid(trace->daemon->itf->event_make(trace->daemon->closure, name).closure);
+                       e = afb_daemon_make_event_v1(*trace->daemon, name);
+                       event->evtid = afb_evt_to_evtid(afb_event_to_eventid(e));
                        if (event->evtid) {
                                event->next = trace->events;
                                trace->events = event;
index ed5f30b..f9f2324 100644 (file)
@@ -424,7 +424,7 @@ static int xreq_session_set_LOA_cb(struct afb_request *closure, unsigned level)
 static int xreq_subscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid);
 static int xreq_subscribe_cb(struct afb_request *closure, struct afb_event event)
 {
-       return xreq_subscribe_eventid_cb(closure, event.closure);
+       return xreq_subscribe_eventid_cb(closure, afb_event_to_eventid(event));
 }
 
 static int xreq_subscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid)
@@ -447,7 +447,7 @@ int afb_xreq_subscribe(struct afb_xreq *xreq, struct afb_eventid *eventid)
 static int xreq_unsubscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid);
 static int xreq_unsubscribe_cb(struct afb_request *closure, struct afb_event event)
 {
-       return xreq_unsubscribe_eventid_cb(closure, event.closure);
+       return xreq_unsubscribe_eventid_cb(closure, afb_event_to_eventid(event));
 }
 
 static int xreq_unsubscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid)
@@ -642,7 +642,7 @@ static int xreq_hooked_session_set_LOA_cb(struct afb_request *closure, unsigned
 static int xreq_hooked_subscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid);
 static int xreq_hooked_subscribe_cb(struct afb_request *closure, struct afb_event event)
 {
-       return xreq_hooked_subscribe_eventid_cb(closure, event.closure);
+       return xreq_hooked_subscribe_eventid_cb(closure, afb_event_to_eventid(event));
 }
 
 static int xreq_hooked_subscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid)
@@ -655,7 +655,7 @@ static int xreq_hooked_subscribe_eventid_cb(struct afb_request *closure, struct
 static int xreq_hooked_unsubscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid);
 static int xreq_hooked_unsubscribe_cb(struct afb_request *closure, struct afb_event event)
 {
-       return xreq_hooked_unsubscribe_eventid_cb(closure, event.closure);
+       return xreq_hooked_unsubscribe_eventid_cb(closure, afb_event_to_eventid(event));
 }
 
 static int xreq_hooked_unsubscribe_eventid_cb(struct afb_request *closure, struct afb_eventid *eventid)