memcpy(event + plen + 1, name, nlen + 1);
/* create the event */
- return afb_evt_create_event(event);
+ return afb_evt_eventid_create(event);
}
static struct afb_event event_make_cb(void *closure, const char *name)
{
struct afb_eventid *eventid = eventid_make_cb(closure, name);
- return (struct afb_event){ .itf = eventid ? eventid->itf : NULL, .closure = eventid };
+ return afb_evt_event_from_evtid(afb_evt_eventid_to_evtid(eventid));
}
static int event_broadcast_cb(void *closure, const char *name, struct json_object *object)
void *closure,
const char *api,
const char *info,
+ int noconcurrency,
int (*preinit)(void*, struct afb_dynapi *),
void *preinit_closure)
{
struct afb_export *export = closure;
- return afb_api_dyn_add(export->apiset, api, info, preinit, preinit_closure);
+ return afb_api_dyn_add(export->apiset, api, info, noconcurrency, preinit, preinit_closure);
}
/**********************************************
void *closure,
const char *api,
const char *info,
+ int noconcurrency,
int (*preinit)(void*, struct afb_dynapi *),
void *preinit_closure)
{
/* TODO */
- return api_new_api_cb(closure, api, info, preinit, preinit_closure);
+ return api_new_api_cb(closure, api, info, noconcurrency, preinit, preinit_closure);
}
/**********************************************
* vectors
callreq->xreq.context.validated = 1;
copy = (char*)&callreq[1];
memcpy(copy, api, lenapi);
- callreq->xreq.api = copy;
+ callreq->xreq.request.api = copy;
copy = ©[lenapi];
memcpy(copy, verb, lenverb);
- callreq->xreq.verb = copy;
+ callreq->xreq.request.verb = copy;
callreq->xreq.listener = export->listener;
callreq->xreq.json = args;
callreq->export = export;
const char *verb,
const char *info,
void (*callback)(struct afb_request *request),
+ void *vcbdata,
const struct afb_auth *auth,
uint32_t session)
{
struct afb_export *export = from_dynapi(dynapi);
if (export->apidyn)
- return afb_api_dyn_add_verb(export->apidyn, verb, info, callback, auth, session);
+ return afb_api_dyn_add_verb(export->apidyn, verb, info, callback, vcbdata, auth, session);
errno = EPERM;
return -1;
const char *verb,
const char *info,
void (*callback)(struct afb_request *request),
+ void *vcbdata,
const struct afb_auth *auth,
uint32_t session)
{
/* TODO */
- return api_add_verb_cb(dynapi, verb, info, callback, auth, session);
+ return api_add_verb_cb(dynapi, verb, info, callback, vcbdata, auth, session);
}
static int hooked_api_sub_verb_cb(
/* session shared with other exports */
if (common_session == NULL) {
- common_session = afb_session_create (NULL, 0);
+ common_session = afb_session_create (0);
if (common_session == NULL)
return NULL;
}
else {
memset(export, 0, sizeof *export);
export->apiname = strdup(apiname);
+ export->dynapi.apiname = export->apiname;
export->version = version;
export->state = Api_State_Pre_Init;
export->session = afb_session_addref(common_session);
{
free(export->apiname);
export->apiname = strdup(apiname);
+ export->dynapi.apiname = export->apiname;
afb_export_update_hook(export);
}
int afb_export_unshare_session(struct afb_export *export)
{
if (export->session == common_session) {
- export->session = afb_session_create (NULL, 0);
+ export->session = afb_session_create (0);
if (export->session)
afb_session_unref(common_session);
else {