-bend_deleteresult *bend_delete(void *handle, bend_deleterequest *r, int *fd);
-bend_deleteresult *bend_deleteresponse(void *handle);
+typedef struct bend_initrequest
+{
+ char *configname;
+ Z_IdAuthentication *auth;
+ ODR stream; /* encoding stream */
+
+ int (*bend_sort) (void *handle, bend_sort_rr *rr);
+ int (*bend_search) (void *handle, bend_search_rr *rr);
+ int (*bend_present) (void *handle, bend_present_rr *rr);
+ int (*bend_esrequest) (void *handle, bend_esrequest_rr *rr);
+ int (*bend_delete)(void *handle, bend_delete_rr *rr);
+} bend_initrequest;
+
+typedef struct bend_initresult
+{
+ int errcode; /* 0==OK */
+ char *errstring; /* system error string or NULL */
+ void *handle; /* private handle to the backend module */
+} bend_initresult;
+
+YAZ_EXPORT bend_initresult *bend_init(bend_initrequest *r);
+
+YAZ_EXPORT void bend_request_send (bend_association a, bend_request req,
+ Z_APDU *res);