2 * Copyright (c) 1995-1998, Index Data
3 * See the file LICENSE for details.
4 * Sebastian Hammer, Adam Dickmeiss
7 * Revision 1.4 1998-02-11 11:53:32 adam
8 * Changed code so that it compiles as C++.
10 * Revision 1.3 1998/01/05 09:04:57 adam
11 * Fixed bugs in encoders/decoders - Not operator (!) missing.
13 * Revision 1.2 1997/04/30 08:52:02 quinn
16 * Revision 1.1 1996/10/10 11:52:18 quinn
17 * Added SearchResult additionalInfo
24 int z_ResultsByDBList (ODR o, Z_ResultsByDBList **p, int opt)
26 if (!odr_initmember (o, p, sizeof(**p)))
27 return opt && odr_ok(o);
28 if (odr_sequence_of (o, z_DatabaseName, &(*p)->elements,
32 return opt && odr_ok(o);
35 int z_ResultsByDB_elem (ODR o, Z_ResultsByDB_elem **p, int opt)
37 static Odr_arm arm[] = {
38 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_all, (Odr_fun)odr_null},
39 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_list, (Odr_fun)z_ResultsByDBList},
42 if (!odr_sequence_begin (o, p, sizeof(**p)))
43 return opt && odr_ok (o);
45 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1) &&
46 odr_choice (o, arm, &(*p)->u, &(*p)->which) &&
47 odr_constructed_end (o) &&
48 odr_implicit (o, odr_integer,
49 &(*p)->count, ODR_CONTEXT, 2, 1) &&
50 odr_implicit (o, z_InternationalString,
51 &(*p)->resultSetName, ODR_CONTEXT, 3, 1) &&
55 int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt)
57 if (!odr_initmember (o, p, sizeof(**p)))
58 return opt && odr_ok(o);
59 if (odr_sequence_of (o, (Odr_fun)z_ResultsByDB_elem, &(*p)->elements,
63 return opt && odr_ok(o);
66 int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt)
68 if (!odr_sequence_begin (o, p, sizeof(**p)))
69 return opt && odr_ok (o);
71 odr_explicit (o, z_Term,
72 &(*p)->queryTerm, ODR_CONTEXT, 1, 0) &&
73 odr_implicit (o, z_InternationalString,
74 &(*p)->termComment, ODR_CONTEXT, 2, 1) &&
78 int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt)
80 static Odr_arm arm[] = {
81 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryExpression_term,
82 (Odr_fun)z_QueryExpressionTerm},
83 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query, (Odr_fun)z_Query},
86 if (!odr_initmember(o, p, sizeof(**p)))
87 return opt && odr_ok(o);
88 if (odr_choice(o, arm, &(*p)->u, &(*p)->which))
91 return opt && odr_ok(o);
94 int z_SearchInfoReport_elem (ODR o, Z_SearchInfoReport_elem **p, int opt)
96 if (!odr_sequence_begin (o, p, sizeof(**p)))
97 return opt && odr_ok (o);
99 odr_implicit (o, z_InternationalString,
100 &(*p)->subqueryId, ODR_CONTEXT, 1, 1) &&
101 odr_implicit (o, odr_bool,
102 &(*p)->fullQuery, ODR_CONTEXT, 2, 0) &&
103 odr_explicit (o, z_QueryExpression,
104 &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1) &&
105 odr_explicit (o, z_QueryExpression,
106 &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1) &&
107 odr_explicit (o, z_QueryExpression,
108 &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1) &&
109 odr_implicit (o, odr_integer,
110 &(*p)->subqueryCount, ODR_CONTEXT, 6, 1) &&
111 odr_implicit (o, z_IntUnit,
112 &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1) &&
113 odr_implicit (o, z_ResultsByDB,
114 &(*p)->resultsByDB, ODR_CONTEXT, 8, 1) &&
115 odr_sequence_end (o);
118 int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt)
120 if (!odr_initmember (o, p, sizeof(**p)))
121 return opt && odr_ok(o);
122 if (odr_sequence_of (o, (Odr_fun)z_SearchInfoReport_elem, &(*p)->elements,
126 return opt && odr_ok(o);