Implemented delete result set(s).
[idzebra-moved-to-github.git] / index / zebraapi.h
1 /*
2  * Copyright (C) 1994-1998, Index Data
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: zebraapi.h,v $
7  * Revision 1.7  1999-11-04 15:00:45  adam
8  * Implemented delete result set(s).
9  *
10  * Revision 1.6  1999/02/17 11:29:57  adam
11  * Fixed in record_fetch. Minor updates to API.
12  *
13  * Revision 1.5  1998/09/22 10:48:19  adam
14  * Minor changes in search API.
15  *
16  * Revision 1.4  1998/09/02 13:53:18  adam
17  * Extra parameter decode added to search routines to implement
18  * persistent queries.
19  *
20  * Revision 1.3  1998/06/22 11:36:48  adam
21  * Added authentication check facility to zebra.
22  *
23  * Revision 1.2  1998/06/13 00:14:09  adam
24  * Minor changes.
25  *
26  * Revision 1.1  1998/06/12 12:22:13  adam
27  * Work on Zebra API.
28  *
29  */
30
31 #include <odr.h>
32 #include <oid.h>
33 #include <proto.h>
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 /* Retrieval Record Descriptor */
40 typedef struct {
41     int errCode;         /* non-zero if error when fetching this */
42     char *errString;     /* error string */
43     int position;        /* position of record in result set (1,2,..) */
44     char *buf;           /* record buffer (void pointer really) */
45     int len;             /* length */
46     oid_value format;    /* record syntax */
47     char *base; 
48 } ZebraRetrievalRecord;
49
50 /* Scan Term Descriptor */
51 typedef struct {
52     int occurrences;     /* scan term occurrences */
53     char *term;          /* scan term string */
54 } ZebraScanEntry;
55
56 typedef struct zebra_info *ZebraHandle;
57
58 /* Open Zebra using file 'configName' (usually zebra.cfg) */
59 YAZ_EXPORT ZebraHandle zebra_open (const char *configName);
60
61 /* Search using RPN-Query */
62 YAZ_EXPORT void zebra_search_rpn (ZebraHandle zh, ODR input, ODR output,
63                        Z_RPNQuery *query, int num_bases, char **basenames, 
64                        const char *setname);
65
66 /* Retrieve record(s) */
67 YAZ_EXPORT void zebra_records_retrieve (ZebraHandle zh, ODR stream,
68                        const char *setname, Z_RecordComposition *comp,
69                        oid_value input_format,
70                        int num_recs, ZebraRetrievalRecord *recs);
71
72 /* Browse */
73 YAZ_EXPORT void zebra_scan (ZebraHandle zh, ODR stream,
74                             Z_AttributesPlusTerm *zapt,
75                             oid_value attributeset,
76                             int num_bases, char **basenames,
77                             int *position, int *num_entries,
78                             ZebraScanEntry **list,
79                             int *is_partial);
80     
81 /* Delete Result Set(s) */
82 YAZ_EXPORT int zebra_deleleResultSet(ZebraHandle zh, int function,
83                                      int num_setnames, char **setnames,
84                                      int *statuses);
85
86 /* Close zebra and destroy handle */
87 YAZ_EXPORT void zebra_close (ZebraHandle zh);
88
89 /* last error code */
90 YAZ_EXPORT int zebra_errCode (ZebraHandle zh);
91 /* string representatio of above */
92 YAZ_EXPORT const char *zebra_errString (ZebraHandle zh);
93
94 /* extra information associated with error */
95 YAZ_EXPORT char *zebra_errAdd (ZebraHandle zh);
96
97 /* number of hits (after search) */
98 YAZ_EXPORT int zebra_hits (ZebraHandle zh);
99
100 /* do authentication */
101 YAZ_EXPORT int zebra_auth (ZebraHandle zh, const char *user, const char *pass);
102
103 #ifdef __cplusplus
104 }
105 #endif