Add wrappers for accesses to internals
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 22 Sep 2017 16:35:13 +0000 (18:35 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Mon, 9 Oct 2017 12:08:33 +0000 (14:08 +0200)
Change-Id: I6144b0ab21418dc98792f0eeef695f3df0fc11d3
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
bindings/samples/ave.c
include/afb/afb-dynapi.h
include/afb/afb-request.h

index e6b195b..6c3bf92 100644 (file)
@@ -29,7 +29,7 @@ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 struct event
 {
        struct event *next;
-       struct afb_eventid *eventid;
+       afb_eventid *eventid;
        char tag[1];
 };
 
@@ -415,7 +415,7 @@ static void onevent(afb_dynapi *dynapi, const char *event, struct json_object *o
 {
        AFB_DYNAPI_NOTICE(dynapi, "received event %s(%s) by AVE(%s)",
                        event, json_object_to_json_string(object),
-                       (const char*)dynapi->userdata);
+                       (const char*)afb_dynapi_get_userdata(dynapi));
 }
 
 // NOTE: this sample does not use session to keep test a basic as possible
@@ -461,12 +461,12 @@ static const afb_verb_v2 verbsv2[]= {
 
 static const char *apis[] = { "ave", "hi", "salut", NULL };
 
-static int api_preinit(void *closure, afb_dynapi *dynapi)
+static int build_api(void *closure, afb_dynapi *dynapi)
 {
        int i, rc;
 
-       dynapi->userdata = closure;
-       AFB_DYNAPI_NOTICE(dynapi, "dynamic binding AVE(%s) comes to live", (const char*)dynapi->userdata);
+       afb_dynapi_set_userdata(dynapi, closure);
+       AFB_DYNAPI_NOTICE(dynapi, "dynamic binding AVE(%s) comes to live", (const char*)afb_dynapi_get_userdata(dynapi));
        afb_dynapi_on_init(dynapi, init);
        afb_dynapi_on_event(dynapi, onevent);
 
@@ -483,7 +483,7 @@ int afbBindingVdyn(afb_dynapi *dynapi)
        int i, rc;
 
        for (i = 0; apis[i] ; i++) {
-               rc = afb_dynapi_new_api(dynapi, apis[i], NULL, api_preinit, (void*)apis[i]);
+               rc = afb_dynapi_new_api(dynapi, apis[i], NULL, build_api, (void*)apis[i]);
        }
        return 0;
 }
index edae491..dfdcdb2 100644 (file)
 
 #include "afb-dynapi-itf.h"
 
+static inline const char *afb_dynapi_name(struct afb_dynapi *dynapi)
+{
+       return dynapi->apiname;
+}
+
+static inline void *afb_dynapi_get_userdata(struct afb_dynapi *dynapi)
+{
+       return dynapi->userdata;
+}
+
+static inline void afb_dynapi_set_userdata(struct afb_dynapi *dynapi, void *userdata)
+{
+       dynapi->userdata = userdata;
+}
+
 /*
  * Send a message described by 'fmt' and following parameters
  * to the journal for the verbosity 'level'.
@@ -188,7 +203,7 @@ static inline void afb_dynapi_call(
        const char *api,
        const char *verb,
        struct json_object *args,
-       void (*callback)(void*closure, int status, struct json_object *result, struct afb_dynapi *dynapi),
+       void (*callback)(void *closure, int status, struct json_object *result, struct afb_dynapi *dynapi),
        void *callback_closure)
 {
        dynapi->itf->call(dynapi, api, verb, args, callback, callback_closure);
index 678922b..fcab03c 100644 (file)
 
 #include "afb-request-itf.h"
 
+static inline struct afb_dynapi *afb_request_get_dynapi(struct afb_request *request)
+{
+       return request->dynapi;
+}
+
+static inline void *afb_request_get_vcbdata(struct afb_request *request)
+{
+       return request->vcbdata;
+}
+
+static inline const char *afb_request_get_api(struct afb_request *request)
+{
+       return request->api;
+}
+
+static inline const char *afb_request_get_verb(struct afb_request *request)
+{
+       return request->verb;
+}
+
 /*
  * Gets from the request 'request' the argument of 'name'.
  * Returns a PLAIN structure of type 'struct afb_arg'.