#pragma once
-
-#define NO_BINDING_VERBOSE_MACRO
-#include <afb/afb-binding.h>
#include "afb-context.h"
-#include "afb-evt.h"
struct json_object;
struct afb_evt_listener;
struct afb_xreq;
struct afb_cred;
struct afb_apiset;
+struct afb_event;
+struct afb_verb_desc_v1;
+struct afb_verb_v2;
struct afb_xreq_query_itf {
struct json_object *(*json)(struct afb_xreq *xreq);
void (*callback)(void*, int, struct json_object*),
void *cb_closure);
+extern int afb_xreq_unhooked_subcall_sync(
+ struct afb_xreq *xreq,
+ const char *api,
+ const char *verb,
+ struct json_object *args,
+ struct json_object **result);
+extern int afb_xreq_subcall_sync(
+ struct afb_xreq *xreq,
+ const char *api,
+ const char *verb,
+ struct json_object *args,
+ struct json_object **result);
+
/* initialisation and processing of xreq */
extern void afb_xreq_init(struct afb_xreq *xreq, const struct afb_xreq_query_itf *queryitf);
extern void afb_xreq_process(struct afb_xreq *xreq, struct afb_apiset *apiset);
-extern int xreq_session_check(struct afb_xreq *xreq, int sessionflags);
-extern void xreq_session_apply(struct afb_xreq *xreq, int sessionflags);
-extern int xreq_session_check_apply(struct afb_xreq *xreq, int sessionflags);
-
-extern void afb_xreq_call(struct afb_xreq *xreq, void (*callback)(struct afb_req req));
-extern void afb_xreq_check_apply_call(struct afb_xreq *xreq, int sessionflags, void (*callback)(struct afb_req req));
+extern void afb_xreq_call_verb_v1(struct afb_xreq *xreq, const struct afb_verb_desc_v1 *verb);
+extern void afb_xreq_call_verb_v2(struct afb_xreq *xreq, const struct afb_verb_v2 *verb);