-struct afb_subcall;
-
-static void subcall_addref(struct afb_subcall *subcall);
-static void subcall_unref(struct afb_subcall *subcall);
-static struct json_object *subcall_json(struct afb_subcall *subcall);
-static struct afb_arg subcall_get(struct afb_subcall *subcall, const char *name);
-static void subcall_fail(struct afb_subcall *subcall, const char *status, const char *info);
-static void subcall_success(struct afb_subcall *subcall, struct json_object *obj, const char *info);
-static const char *subcall_raw(struct afb_subcall *subcall, size_t *size);
-static void subcall_send(struct afb_subcall *subcall, const char *buffer, size_t size);
-static int subcall_subscribe(struct afb_subcall *subcall, struct afb_event event);
-static int subcall_unsubscribe(struct afb_subcall *subcall, struct afb_event event);
-static void subcall_session_close(struct afb_subcall *subcall);
-static int subcall_session_set_LOA(struct afb_subcall *subcall, unsigned loa);
-static void subcall_subcall(struct afb_subcall *subcall, const char *api, const char *verb, struct json_object *args, void (*callback)(void*, int, struct json_object*), void *closure);
-
-const struct afb_req_itf afb_subcall_req_itf = {
- .json = (void*)subcall_json,
- .get = (void*)subcall_get,
- .success = (void*)subcall_success,
- .fail = (void*)subcall_fail,
- .raw = (void*)subcall_raw,
- .send = (void*)subcall_send,
- .context_get = (void*)afb_context_get,
- .context_set = (void*)afb_context_set,
- .addref = (void*)subcall_addref,
- .unref = (void*)subcall_unref,
- .session_close = (void*)subcall_session_close,
- .session_set_LOA = (void*)subcall_session_set_LOA,
- .subscribe = (void*)subcall_subscribe,
- .unsubscribe = (void*)subcall_unsubscribe,
- .subcall = (void*)subcall_subcall
-};
-
-struct afb_subcall