* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Id: backend.h,v 1.18 2003-02-12 15:06:43 adam Exp $
+ * $Id: backend.h,v 1.21 2003-04-24 13:30:32 adam Exp $
*/
#ifndef BACKEND_H
int errcode; /* 0==success */
char *errstring; /* system error string or NULL */
int surrogate_flag; /* surrogate diagnostic */
+ char *schema; /* string record schema input/output */
} bend_fetch_rr;
struct scan_entry {
int occurrences; /* no of occurrences or -1 if error (see below) */
int errcode; /* Bib-1 diagnostic code; only used when occur.= -1 */
char *errstring; /* Additional string */
+ char *display_term;
};
typedef enum {
int term_position; /* desired index of term in result list/returned */
int num_entries; /* number of entries requested/returned */
+ /* scan term entries. The called handler does not have
+ to allocate this. Size of entries is num_entries (see above) */
struct scan_entry *entries;
bend_scan_status status;
int errcode;
bend_association association;
} bend_segment_rr;
+typedef struct {
+ ODR stream;
+ ODR decode;
+ ODR print;
+ char *explain_buf;
+} bend_explain_rr;
+
typedef struct bend_initrequest
{
Z_IdAuthentication *auth;
/* character set and language negotiation - see include/yaz/z-charneg.h */
Z_CharSetandLanguageNegotiation *charneg_request;
Z_External *charneg_response;
-
+ int (*bend_explain)(void *handle, bend_explain_rr *rr);
} bend_initrequest;
typedef struct bend_initresult
struct bend_soap_handler *soap_handlers;
} statserv_options_block;
-struct bend_http_rr {
- void *handle;
- ODR stream; /* encoding stream */
- ODR decode; /* decoding stream */
- ODR print; /* print stream */
- Z_HTTP_Request *hreq; /* whole HTTP request */
- char *buf;
- int len;
-};
-
-struct bend_soap_rr {
- void *handle; /* user handle */
- ODR stream;
- ODR decode;
- ODR print;
- const char *ns_env; /* SOAP NS */
- const char *ns_enc; /* SOAP Encoding NS */
- void *request_method;
- void *response_body;
- char *fault_code;
- char *fault_string;
-};
-
-struct bend_soap_handler {
- char *ns;
- int (*handler)(struct bend_soap_rr *rr);
- struct bend_soap_handler *next;
-};
-
YAZ_EXPORT int statserv_main(
int argc, char **argv,
bend_initresult *(*bend_init)(bend_initrequest *r),
YAZ_EXPORT void statserv_setcontrol(statserv_options_block *block);
YAZ_EXPORT int check_ip_tcpd(void *cd, const char *addr, int len, int type);
-YAZ_EXPORT void statserv_add_soap_handler(int (*h)(struct bend_soap_rr *rr),
- const char *ns);
YAZ_END_CDECL