00001
00007 #include <yaz/z-uifr1.h>
00008
00009 int z_SearchInfoReport_s (ODR o, Z_SearchInfoReport_s **p, int opt, const char *name)
00010 {
00011 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00012 return odr_missing(o, opt, name) && odr_ok (o);
00013 return
00014 odr_implicit_tag (o, z_InternationalString,
00015 &(*p)->subqueryId, ODR_CONTEXT, 1, 1, "subqueryId") &&
00016 odr_implicit_tag (o, odr_bool,
00017 &(*p)->fullQuery, ODR_CONTEXT, 2, 0, "fullQuery") &&
00018 odr_explicit_tag (o, z_QueryExpression,
00019 &(*p)->subqueryExpression, ODR_CONTEXT, 3, 1, "subqueryExpression") &&
00020 odr_explicit_tag (o, z_QueryExpression,
00021 &(*p)->subqueryInterpretation, ODR_CONTEXT, 4, 1, "subqueryInterpretation") &&
00022 odr_explicit_tag (o, z_QueryExpression,
00023 &(*p)->subqueryRecommendation, ODR_CONTEXT, 5, 1, "subqueryRecommendation") &&
00024 odr_implicit_tag (o, odr_integer,
00025 &(*p)->subqueryCount, ODR_CONTEXT, 6, 1, "subqueryCount") &&
00026 odr_implicit_tag (o, z_IntUnit,
00027 &(*p)->subqueryWeight, ODR_CONTEXT, 7, 1, "subqueryWeight") &&
00028 odr_implicit_tag (o, z_ResultsByDB,
00029 &(*p)->resultsByDB, ODR_CONTEXT, 8, 1, "resultsByDB") &&
00030 odr_sequence_end (o);
00031 }
00032
00033 int z_SearchInfoReport (ODR o, Z_SearchInfoReport **p, int opt, const char *name)
00034 {
00035 if (!odr_initmember (o, p, sizeof(**p)))
00036 return odr_missing(o, opt, name);
00037 if (odr_sequence_of (o, (Odr_fun) z_SearchInfoReport_s, &(*p)->elements,
00038 &(*p)->num, name))
00039 return 1;
00040 if(o->direction == ODR_DECODE)
00041 *p = 0;
00042 return odr_missing(o, opt, name);
00043 }
00044
00045 int z_ResultsByDB_sList (ODR o, Z_ResultsByDB_sList **p, int opt, const char *name)
00046 {
00047 if (!odr_initmember (o, p, sizeof(**p)))
00048 return odr_missing(o, opt, name);
00049 if (odr_sequence_of (o, (Odr_fun) z_DatabaseName, &(*p)->elements,
00050 &(*p)->num, name))
00051 return 1;
00052 if(o->direction == ODR_DECODE)
00053 *p = 0;
00054 return odr_missing(o, opt, name);
00055 }
00056
00057 int z_ResultsByDB_s (ODR o, Z_ResultsByDB_s **p, int opt, const char *name)
00058 {
00059 static Odr_arm arm[] = {
00060 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ResultsByDB_s_all,
00061 (Odr_fun) odr_null, "all"},
00062 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ResultsByDB_s_list,
00063 (Odr_fun) z_ResultsByDB_sList, "list"},
00064 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00065 };
00066 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00067 return odr_missing(o, opt, name) && odr_ok (o);
00068 return
00069 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "databases") &&
00070 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
00071 odr_constructed_end (o) &&
00072 odr_implicit_tag (o, odr_integer,
00073 &(*p)->count, ODR_CONTEXT, 2, 1, "count") &&
00074 odr_implicit_tag (o, z_InternationalString,
00075 &(*p)->resultSetName, ODR_CONTEXT, 3, 1, "resultSetName") &&
00076 odr_sequence_end (o);
00077 }
00078
00079 int z_ResultsByDB (ODR o, Z_ResultsByDB **p, int opt, const char *name)
00080 {
00081 if (!odr_initmember (o, p, sizeof(**p)))
00082 return odr_missing(o, opt, name);
00083 if (odr_sequence_of (o, (Odr_fun) z_ResultsByDB_s, &(*p)->elements,
00084 &(*p)->num, name))
00085 return 1;
00086 if(o->direction == ODR_DECODE)
00087 *p = 0;
00088 return odr_missing(o, opt, name);
00089 }
00090
00091 int z_QueryExpressionTerm (ODR o, Z_QueryExpressionTerm **p, int opt, const char *name)
00092 {
00093 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00094 return odr_missing(o, opt, name) && odr_ok (o);
00095 return
00096 odr_explicit_tag (o, z_Term,
00097 &(*p)->queryTerm, ODR_CONTEXT, 1, 0, "queryTerm") &&
00098 odr_implicit_tag (o, z_InternationalString,
00099 &(*p)->termComment, ODR_CONTEXT, 2, 1, "termComment") &&
00100 odr_sequence_end (o);
00101 }
00102
00103 int z_QueryExpression (ODR o, Z_QueryExpression **p, int opt, const char *name)
00104 {
00105 static Odr_arm arm[] = {
00106 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_QueryExpression_term,
00107 (Odr_fun) z_QueryExpressionTerm, "term"},
00108 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_QueryExpression_query,
00109 (Odr_fun) z_Query, "query"},
00110 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00111 };
00112 if (!odr_initmember(o, p, sizeof(**p)))
00113 return odr_missing(o, opt, name);
00114 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
00115 return 1;
00116 if(o->direction == ODR_DECODE)
00117 *p = 0;
00118 return odr_missing(o, opt, name);
00119 }