Renamed Z_SRW_searchRetrieve to Z_SRW_PDU
[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.5 2003-02-23 14:26:57 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
27 #define Z_SRW_query_type_cql  1
28 #define Z_SRW_query_type_xcql 2
29 #define Z_SRW_query_type_pqf  3
30     int query_type;
31     union {
32         char *cql;
33         char *xcql;
34         char *pqf;
35     } query;
36
37 #define Z_SRW_sort_type_none 1
38 #define Z_SRW_sort_type_sort 2
39 #define Z_SRW_sort_type_xSort 3
40     int sort_type;
41     union {
42         char *none;
43         char *sortKeys;
44         char *xSortKeys;
45     } sort;
46     int *startRecord;
47     int  *maximumRecords;
48     char *recordSchema;
49     char *recordPacking;
50     char *database;
51 } Z_SRW_searchRetrieveRequest;
52
53 typedef struct {
54     int * numberOfRecords;
55     char * resultSetId;
56     int * resultSetIdleTime;
57     
58     Z_SRW_record *records;
59     int num_records;
60
61     Z_SRW_diagnostic *diagnostics;
62     int num_diagnostics;
63     int *nextRecordPosition;
64 } Z_SRW_searchRetrieveResponse;
65
66 #define Z_SRW_searchRetrieve_request  1
67 #define Z_SRW_searchRetrieve_response 2
68
69 typedef struct {
70     int which;
71     union {
72         Z_SRW_searchRetrieveRequest *request;
73         Z_SRW_searchRetrieveResponse *response;
74     } u;
75 } Z_SRW_PDU;
76
77 YAZ_EXPORT int yaz_srw_codec(ODR o, void * pptr,
78                              Z_SRW_PDU **handler_data,
79                              void *client_data, const char *ns);
80 YAZ_EXPORT Z_SRW_PDU *yaz_srw_get(ODR o, int which);
81
82 YAZ_EXPORT const char *yaz_diag_srw_str (int code);
83
84 YAZ_EXPORT int yaz_diag_bib1_to_srw (int bib1_code);
85
86 YAZ_EXPORT int yaz_diag_srw_to_bib1(int srw_code);
87
88
89 #endif