Handles subcall sync within xreq
[src/app-framework-binder.git] / src / afb-xreq.h
index a7b086b..a37b6bf 100644 (file)
 
 #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);
@@ -119,15 +118,24 @@ extern void afb_xreq_unhooked_subcall(
                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);