/*
- * Copyright 2016 IoT.bzh
+ * Copyright (C) 2016, 2017 "IoT.bzh"
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* limitations under the License.
*/
+#pragma once
-extern int afb_apis_count();
+struct afb_req;
+struct afb_context;
+struct afb_xreq;
-extern void afb_apis_free_context(int apiidx, void *context);
+struct afb_api
+{
+ void *closure;
+ void (*call)(void *closure, struct afb_xreq *xreq);
+ int (*service_start)(void *closure, int share_session, int onneed);
+};
-extern const struct AFB_restapi *afb_apis_get(int apiidx, int verbidx);
+extern void afb_apis_set_timeout(int to);
-extern int afb_apis_get_verbidx(int apiidx, const char *name);
+extern int afb_apis_is_valid_api_name(const char *name);
-extern int afb_apis_get_apiidx(const char *prefix, size_t length);
+extern int afb_apis_add(const char *name, struct afb_api api);
-extern int afb_apis_add_plugin(const char *path);
+extern int afb_apis_start_all_services(int share_session);
+extern int afb_apis_start_service(const char *name, int share_session, int onneed);
-extern int afb_apis_add_directory(const char *path);
-
-extern int afb_apis_add_path(const char *path);
-
-extern int afb_apis_add_pathset(const char *pathset);
+extern void afb_apis_call(struct afb_xreq *xreq);
+extern void afb_apis_call_direct(struct afb_xreq *xreq);