diff options
-rw-r--r-- | bindings/samples/ave.c | 12 | ||||
-rw-r--r-- | include/afb/afb-dynapi.h | 17 | ||||
-rw-r--r-- | include/afb/afb-request.h | 20 |
3 files changed, 42 insertions, 7 deletions
diff --git a/bindings/samples/ave.c b/bindings/samples/ave.c index e6b195b8..6c3bf92c 100644 --- a/bindings/samples/ave.c +++ b/bindings/samples/ave.c @@ -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; } diff --git a/include/afb/afb-dynapi.h b/include/afb/afb-dynapi.h index edae4915..dfdcdb24 100644 --- a/include/afb/afb-dynapi.h +++ b/include/afb/afb-dynapi.h @@ -19,6 +19,21 @@ #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); diff --git a/include/afb/afb-request.h b/include/afb/afb-request.h index 678922b3..fcab03c3 100644 --- a/include/afb/afb-request.h +++ b/include/afb/afb-request.h @@ -19,6 +19,26 @@ #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'. |