/*
- * Copyright 2016 IoT.bzh
+ * Copyright (C) 2016 "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
+
struct afb_req;
-struct AFB_clientCtx;
+struct afb_context;
struct afb_api
{
void *closure;
- void (*call)(void *closure, struct afb_req req, const char *verb, size_t lenverb);
- void (*free_context)(void *closure, void *context);
+ void (*call)(void *closure, struct afb_req req, struct afb_context *context, const char *verb, size_t lenverb);
};
extern int afb_apis_count();
+extern int afb_apis_is_valid_api_name(const char *name);
extern int afb_apis_add(const char *name, struct afb_api api);
-extern void afb_apis_call(struct afb_req req, struct AFB_clientCtx *context, const char *api, size_t lenapi, const char *verb, size_t lenverb);
+extern void afb_apis_call(struct afb_req req, struct afb_context *context, const char *api, size_t lenapi, const char *verb, size_t lenverb);
+extern void afb_apis_call_(struct afb_req req, struct afb_context *context, const char *api, const char *verb);
-extern void afb_apis_free_context(int apiidx, void *context);