SRW record retrieval works for ZOOM
[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.3 2003-02-17 14:35:42 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     char *database;
36 } Z_SRW_searchRetrieveRequest;
37
38 typedef struct {
39     int * numberOfRecords;
40     char * resultSetId;
41     int * resultSetIdleTime;
42     
43     Z_SRW_record *records;
44     int num_records;
45
46     Z_SRW_diagnostic *diagnostics;
47     int num_diagnostics;
48     int *nextRecordPosition;
49 } Z_SRW_searchRetrieveResponse;
50
51 #define Z_SRW_searchRetrieve_request  1
52 #define Z_SRW_searchRetrieve_response 2
53
54 typedef struct {
55     int which;
56     union {
57         Z_SRW_searchRetrieveRequest *request;
58         Z_SRW_searchRetrieveResponse *response;
59     } u;
60 } Z_SRW_searchRetrieve;
61
62 YAZ_EXPORT int yaz_srw_codec(ODR o, void * pptr,
63                              Z_SRW_searchRetrieve **handler_data,
64                              void *client_data, const char *ns);
65 YAZ_EXPORT Z_SRW_searchRetrieve *yaz_srw_get(ODR o, int which);
66
67 YAZ_EXPORT const char *yaz_srw_error_str (int code);
68
69
70 #endif