struct event
{
struct event *next;
- struct afb_eventid *eventid;
+ afb_eventid *eventid;
char tag[1];
};
{
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
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);
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;
}
#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'.
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);
#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'.