5f29e409bb65a2c62d4212f4a69225ee0e9275f5
[yaz-moved-to-github.git] / include / yaz / srw.h
1 /*
2  * Copyright (c) 2002-2003, Index Data.
3  * See the file LICENSE for details.
4  *
5  * $Id: srw.h,v 1.1 2003-02-12 15:06:43 adam Exp $
6  */
7
8 #ifndef YAZ_SRW_H
9 #define YAZ_SRW_H
10
11 #include <yaz/soap.h>
12
13 typedef struct {
14     char *recordSchema;
15     char *recordData_buf;
16     int recordData_len;
17     int *recordPosition;
18 } Z_SRW_record;
19
20 typedef struct {
21     int  *code;
22     char *details;
23 } Z_SRW_diagnostic;
24     
25 typedef struct {
26     char *query;
27     char *pQuery;
28     void *xQuery;
29     char *sortKeys;
30     void *xSortKeys;
31     int *startRecord;
32     int  *maximumRecords;
33     char *recordSchema;
34     char *recordPacking;
35 } Z_SRW_searchRetrieveRequest;
36
37 typedef struct {
38     int * numberOfRecords;
39     char * resultSetId;
40     int * resultSetIdleTime;
41     
42     Z_SRW_record *records;
43     int num_records;
44
45     Z_SRW_diagnostic *diagnostics;
46     int num_diagnostics;
47     int *nextRecordPosition;
48 } Z_SRW_searchRetrieveResponse;
49
50 #define Z_SRW_searchRetrieve_request  1
51 #define Z_SRW_searchRetrieve_response 2
52
53 typedef struct {
54     int which;
55     union {
56         Z_SRW_searchRetrieveRequest *request;
57         Z_SRW_searchRetrieveResponse *response;
58     } u;
59 } Z_SRW_searchRetrieve;
60
61 YAZ_EXPORT int yaz_srw_codec(ODR o, xmlNodePtr pptr,
62                              Z_SRW_searchRetrieve **handler_data,
63                              void *client_data, const char *ns);
64 YAZ_EXPORT Z_SRW_searchRetrieve *yaz_srw_get(ODR o, int which);
65 #endif