00001
00007 #include <yaz/zes-expi.h>
00008
00009 int z_EIExportInvocationEsRequest (ODR o, Z_EIExportInvocationEsRequest **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_explicit_tag (o, z_EIOriginPartToKeep,
00015 &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") &&
00016 odr_explicit_tag (o, z_EIOriginPartNotToKeep,
00017 &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") &&
00018 odr_sequence_end (o);
00019 }
00020
00021 int z_EIExportInvocationTaskPackage (ODR o, Z_EIExportInvocationTaskPackage **p, int opt, const char *name)
00022 {
00023 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00024 return odr_missing(o, opt, name) && odr_ok (o);
00025 return
00026 odr_explicit_tag (o, z_EIOriginPartToKeep,
00027 &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") &&
00028 odr_explicit_tag (o, z_EITargetPart,
00029 &(*p)->targetPart, ODR_CONTEXT, 2, 1, "targetPart") &&
00030 odr_sequence_end (o);
00031 }
00032
00033 int z_EIExportInvocation (ODR o, Z_EIExportInvocation **p, int opt, const char *name)
00034 {
00035 static Odr_arm arm[] = {
00036 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIExportInvocation_esRequest,
00037 (Odr_fun) z_EIExportInvocationEsRequest, "esRequest"},
00038 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIExportInvocation_taskPackage,
00039 (Odr_fun) z_EIExportInvocationTaskPackage, "taskPackage"},
00040 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00041 };
00042 if (!odr_initmember(o, p, sizeof(**p)))
00043 return odr_missing(o, opt, name);
00044 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
00045 return 1;
00046 if(o->direction == ODR_DECODE)
00047 *p = 0;
00048 return odr_missing(o, opt, name);
00049 }
00050
00051 int z_EIOriginPartToKeep (ODR o, Z_EIOriginPartToKeep **p, int opt, const char *name)
00052 {
00053 static Odr_arm arm[] = {
00054 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartToKeep_packageName,
00055 (Odr_fun) z_InternationalString, "packageName"},
00056 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartToKeep_packageSpec,
00057 (Odr_fun) z_ESExportSpecification, "packageSpec"},
00058 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00059 };
00060 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00061 return odr_missing(o, opt, name) && odr_ok (o);
00062 return
00063 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "exportSpec") &&
00064 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
00065 odr_constructed_end (o) &&
00066 odr_implicit_tag (o, odr_integer,
00067 &(*p)->numberOfCopies, ODR_CONTEXT, 2, 0, "numberOfCopies") &&
00068 odr_sequence_end (o);
00069 }
00070
00071 int z_EIOriginPartNotToKeepRanges_s (ODR o, Z_EIOriginPartNotToKeepRanges_s **p, int opt, const char *name)
00072 {
00073 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00074 return odr_missing(o, opt, name) && odr_ok (o);
00075 return
00076 odr_implicit_tag (o, odr_integer,
00077 &(*p)->start, ODR_CONTEXT, 1, 0, "start") &&
00078 odr_implicit_tag (o, odr_integer,
00079 &(*p)->count, ODR_CONTEXT, 2, 1, "count") &&
00080 odr_sequence_end (o);
00081 }
00082
00083 int z_EIOriginPartNotToKeepRanges (ODR o, Z_EIOriginPartNotToKeepRanges **p, int opt, const char *name)
00084 {
00085 if (!odr_initmember (o, p, sizeof(**p)))
00086 return odr_missing(o, opt, name);
00087 if (odr_sequence_of (o, (Odr_fun) z_EIOriginPartNotToKeepRanges_s, &(*p)->elements,
00088 &(*p)->num, name))
00089 return 1;
00090 if(o->direction == ODR_DECODE)
00091 *p = 0;
00092 return odr_missing(o, opt, name);
00093 }
00094
00095 int z_EIOriginPartNotToKeep (ODR o, Z_EIOriginPartNotToKeep **p, int opt, const char *name)
00096 {
00097 static Odr_arm arm[] = {
00098 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_EIOriginPartNotToKeep_all,
00099 (Odr_fun) odr_null, "all"},
00100 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_EIOriginPartNotToKeep_ranges,
00101 (Odr_fun) z_EIOriginPartNotToKeepRanges, "ranges"},
00102 {-1, -1, -1, -1, (Odr_fun) 0, 0}
00103 };
00104 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00105 return odr_missing(o, opt, name) && odr_ok (o);
00106 return
00107 odr_implicit_tag (o, z_InternationalString,
00108 &(*p)->resultSetId, ODR_CONTEXT, 1, 0, "resultSetId") &&
00109 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "records") &&
00110 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
00111 odr_constructed_end (o) &&
00112 odr_sequence_end (o);
00113 }
00114
00115 int z_EITargetPart (ODR o, Z_EITargetPart **p, int opt, const char *name)
00116 {
00117 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00118 return odr_missing(o, opt, name) && odr_ok (o);
00119 return
00120 odr_implicit_tag (o, z_IntUnit,
00121 &(*p)->estimatedQuantity, ODR_CONTEXT, 1, 1, "estimatedQuantity") &&
00122 odr_implicit_tag (o, z_IntUnit,
00123 &(*p)->quantitySoFar, ODR_CONTEXT, 2, 1, "quantitySoFar") &&
00124 odr_implicit_tag (o, z_IntUnit,
00125 &(*p)->estimatedCost, ODR_CONTEXT, 3, 1, "estimatedCost") &&
00126 odr_implicit_tag (o, z_IntUnit,
00127 &(*p)->costSoFar, ODR_CONTEXT, 4, 1, "costSoFar") &&
00128 odr_sequence_end (o);
00129 }