2 #include <yaz/srw-util.h>
3 #include <yaz/xmalloc.h>
6 int (*sr_h)(void *userinfo,
9 struct xcql__operandType *xQuery,
10 xsd__string *sortKeys,
11 struct xsort__xSortKeysType *xSortKeys,
12 xsd__integer *startRecord,
13 xsd__integer *maximumRecords,
14 xsd__string *recordSchema,
15 xsd__string *recordPacking,
16 struct zs__searchRetrieveResponse *res);
17 int (*e_h)(void *userinfo,
19 struct zs__explainResponse *explainResponse);
23 int zs__explainRequest (struct soap *soap,
24 struct zs__explainResponse *explainResponse)
26 struct srw_info *info = (struct srw_info *) soap->user;
27 return (*info->e_h)(info->userinfo, soap, explainResponse);
30 int zs__searchRetrieveRequest(struct soap * soap,
32 struct xcql__operandType *xQuery,
33 xsd__string *sortKeys,
34 struct xsort__xSortKeysType *xSortKeys,
35 xsd__integer *startRecord,
36 xsd__integer *maximumRecords,
37 xsd__string *recordSchema,
38 xsd__string *recordPacking,
39 struct zs__searchRetrieveResponse *res)
41 struct srw_info *info = (struct srw_info *) soap->user;
42 return (*info->sr_h)(info->userinfo, soap,
43 query, xQuery, sortKeys, xSortKeys,
44 startRecord, maximumRecords,
45 recordSchema, recordPacking,
49 void yaz_srw_serve (struct soap *soap,
50 int (*sr_h)(void *userinfo,
53 struct xcql__operandType *xQuery,
54 xsd__string *sortKeys,
55 struct xsort__xSortKeysType *xSortKeys,
56 xsd__integer *startRecord,
57 xsd__integer *maximumRecords,
58 xsd__string *recordSchema,
59 xsd__string *recordPacking,
60 struct zs__searchRetrieveResponse *res),
61 int (*e_h)(void *userinfo,
63 struct zs__explainResponse *explainResponse))
69 info.userinfo = soap->user;
71 soap->namespaces = srw_namespaces;