112958b1dd21b3225f9fe8b7e32e6921328b603f
[yaz-moved-to-github.git] / include / 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.4  1999-04-20 09:56:48  adam
28  * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun).
29  * Modified all encoders/decoders to reflect this change.
30  *
31  * Revision 1.3  1997/05/14 06:53:46  adam
32  * C++ support.
33  *
34  * Revision 1.2  1997/04/30 08:52:09  quinn
35  * Null
36  *
37  * Revision 1.1  1996/10/10  11:51:58  quinn
38  * Added SerchResult additional info
39  *
40  *
41  */
42
43 #ifndef PRT_ADD_H
44 #define PRT_ADD_H
45
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49
50 typedef struct Z_QueryExpressionTerm
51 {
52     Z_Term *queryTerm;
53     char *termComment;              /* OPTIONAL */
54 } Z_QueryExpressionTerm;
55
56 typedef struct Z_QueryExpression
57 {
58     int which;
59 #define Z_QueryExpression_term 1
60 #define Z_QueryExpression_query 2
61     union {
62         Z_QueryExpressionTerm *term;
63         Z_Query *query;
64     } u;
65 } Z_QueryExpression;
66
67 typedef struct Z_ResultsByDBList
68 {
69     int num;
70     Z_DatabaseName **elements;
71 } Z_ResultsByDBList;
72
73 typedef struct Z_ResultsByDB_elem
74 {
75     int which;
76 #define Z_ResultsByDB_all 1
77 #define Z_ResultsByDB_list 2
78     union {
79         Odr_null *all;
80         Z_ResultsByDBList *list;
81     } u;
82     int *count;                           /* OPTIONAL */
83     char *resultSetName; /* OPTIONAL */
84 } Z_ResultsByDB_elem;
85
86 typedef struct Z_ResultsByDB
87 {
88     int num;
89     Z_ResultsByDB_elem **elements;
90 } Z_ResultsByDB;
91
92 typedef struct Z_SearchInfoReport_elem
93 {
94     char *subqueryId;                          /* OPTIONAL */
95     bool_t *fullQuery;
96     Z_QueryExpression *subqueryExpression;     /* OPTIONAL */
97     Z_QueryExpression *subqueryInterpretation; /* OPTIONAL */
98     Z_QueryExpression *subqueryRecommendation; /* OPTIONAL */
99     int *subqueryCount;                        /* OPTIONAL */
100     Z_IntUnit *subqueryWeight;                 /* OPTIONAL */
101     Z_ResultsByDB *resultsByDB;                /* OPTIONAL */
102 } Z_SearchInfoReport_elem;
103
104 typedef struct Z_SearchInfoReport
105 {
106     int num;
107     Z_SearchInfoReport_elem **elements;
108 } Z_SearchInfoReport;
109
110 int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt,
111                         const char *name);
112
113 #ifdef __cplusplus
114 }
115 #endif
116
117 #endif