Updated information about YAZ.
[yaz-moved-to-github.git] / include / yaz / prt-add.h
1 /*
2  * Copyright (c) 1995, Index Data.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and
5  * its documentation, in whole or in part, for any purpose, is hereby granted,
6  * provided that:
7  *
8  * 1. This copyright and permission notice appear in all copies of the
9  * software and its documentation. Notices of copyright or attribution
10  * which appear at the beginning of any file must remain unchanged.
11  *
12  * 2. The name of Index Data or the individual authors may not be used to
13  * endorse or promote products derived from this software without specific
14  * prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22  * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  *
26  * $Log: prt-add.h,v $
27  * Revision 1.1  1999-11-30 13:47:11  adam
28  * Improved installation. Moved header files to include/yaz.
29  *
30  * Revision 1.4  1999/04/20 09:56:48  adam
31  * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
32  * Modified all encoders/decoders to reflect this change.
33  *
34  * Revision 1.3  1997/05/14 06:53:46  adam
35  * C++ support.
36  *
37  * Revision 1.2  1997/04/30 08:52:09  quinn
38  * Null
39  *
40  * Revision 1.1  1996/10/10  11:51:58  quinn
41  * Added SerchResult additional info
42  *
43  *
44  */
45
46 #ifndef PRT_ADD_H
47 #define PRT_ADD_H
48
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52
53 typedef struct Z_QueryExpressionTerm
54 {
55     Z_Term *queryTerm;
56     char *termComment;              /* OPTIONAL */
57 } Z_QueryExpressionTerm;
58
59 typedef struct Z_QueryExpression
60 {
61     int which;
62 #define Z_QueryExpression_term 1
63 #define Z_QueryExpression_query 2
64     union {
65         Z_QueryExpressionTerm *term;
66         Z_Query *query;
67     } u;
68 } Z_QueryExpression;
69
70 typedef struct Z_ResultsByDBList
71 {
72     int num;
73     Z_DatabaseName **elements;
74 } Z_ResultsByDBList;
75
76 typedef struct Z_ResultsByDB_elem
77 {
78     int which;
79 #define Z_ResultsByDB_all 1
80 #define Z_ResultsByDB_list 2
81     union {
82         Odr_null *all;
83         Z_ResultsByDBList *list;
84     } u;
85     int *count;                           /* OPTIONAL */
86     char *resultSetName; /* OPTIONAL */
87 } Z_ResultsByDB_elem;
88
89 typedef struct Z_ResultsByDB
90 {
91     int num;
92     Z_ResultsByDB_elem **elements;
93 } Z_ResultsByDB;
94
95 typedef struct Z_SearchInfoReport_elem
96 {
97     char *subqueryId;                          /* OPTIONAL */
98     bool_t *fullQuery;
99     Z_QueryExpression *subqueryExpression;     /* OPTIONAL */
100     Z_QueryExpression *subqueryInterpretation; /* OPTIONAL */
101     Z_QueryExpression *subqueryRecommendation; /* OPTIONAL */
102     int *subqueryCount;                        /* OPTIONAL */
103     Z_IntUnit *subqueryWeight;                 /* OPTIONAL */
104     Z_ResultsByDB *resultsByDB;                /* OPTIONAL */
105 } Z_SearchInfoReport_elem;
106
107 typedef struct Z_SearchInfoReport
108 {
109     int num;
110     Z_SearchInfoReport_elem **elements;
111 } Z_SearchInfoReport;
112
113 int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt,
114                         const char *name);
115
116 #ifdef __cplusplus
117 }
118 #endif
119
120 #endif