/*
- * Copyright (C) 2016-2019 "IoT.bzh"
+ * Copyright (C) 2015-2020 "IoT.bzh"
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
#endif
#include "afb-api-v3.h"
#include "afb-common.h"
-#include "afb-cred.h"
#include "afb-evt.h"
#include "afb-export.h"
#include "afb-hook.h"
#include "afb-session.h"
#include "afb-xreq.h"
#include "afb-calls.h"
+#include "afb-error-text.h"
#include "systemd.h"
#include "jobs.h"
/*
* Propagates the event to the service
*/
-static void listener_of_events(void *closure, const char *event, int eventid, struct json_object *object)
+static void listener_of_events(void *closure, const char *event, uint16_t eventid, struct json_object *object)
{
const struct globset_handler *handler;
void (*callback)(void *, const char*, struct json_object*, struct afb_api_x3*);
json_object_put(object);
}
-static void listener_of_pushed_events(void *closure, const char *event, int eventid, struct json_object *object)
+static void listener_of_pushed_events(void *closure, const char *event, uint16_t eventid, struct json_object *object)
{
listener_of_events(closure, event, eventid, object);
}
-static void listener_of_broadcasted_events(void *closure, const char *event, struct json_object *object)
+static void listener_of_broadcasted_events(void *closure, const char *event, struct json_object *object, const uuid_binary_t uuid, uint8_t hop)
{
listener_of_events(closure, event, 0, object);
}
afb_api_v3_process_call(export->desc.v3, xreq);
break;
default:
- afb_xreq_reply(xreq, NULL, "bad-api-type", NULL);
+ afb_xreq_reply(xreq, NULL, afb_error_text_internal_error, NULL);
break;
}
}
-static struct json_object *api_describe_cb(void *closure)
+static void api_describe_cb(void *closure, void (*describecb)(void *, struct json_object *), void *clocb)
{
struct afb_export *export = closure;
struct json_object *result;
result = NULL;
break;
}
- return result;
+ describecb(clocb, result);
}
static int api_service_start_cb(void *closure)
int afb_export_subscribe(struct afb_export *export, struct afb_event_x2 *event)
{
- return afb_evt_event_x2_add_watch(export->listener, event);
+ return afb_evt_listener_watch_x2(export->listener, event);
}
int afb_export_unsubscribe(struct afb_export *export, struct afb_event_x2 *event)
{
- return afb_evt_event_x2_remove_watch(export->listener, event);
+ return afb_evt_listener_unwatch_x2(export->listener, event);
}
void afb_export_process_xreq(struct afb_export *export, struct afb_xreq *xreq)
void afb_export_context_init(struct afb_export *export, struct afb_context *context)
{
- afb_context_init(context, export->session, NULL);
- context->validated = 1;
+ afb_context_init_validated(context, export->session, NULL, NULL);
}