00001
00007 #include <yaz/oclc-ill-req-ext.h>
00008
00009 int ill_OCLCILLRequestExtension (ODR o, ILL_OCLCILLRequestExtension **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, ill_String,
00015 &(*p)->clientDepartment, ODR_CONTEXT, 0, 1, "clientDepartment") &&
00016 odr_explicit_tag (o, ill_String,
00017 &(*p)->paymentMethod, ODR_CONTEXT, 1, 1, "paymentMethod") &&
00018 odr_explicit_tag (o, ill_String,
00019 &(*p)->uniformTitle, ODR_CONTEXT, 2, 1, "uniformTitle") &&
00020 odr_explicit_tag (o, ill_String,
00021 &(*p)->dissertation, ODR_CONTEXT, 3, 1, "dissertation") &&
00022 odr_explicit_tag (o, ill_String,
00023 &(*p)->issueNumber, ODR_CONTEXT, 4, 1, "issueNumber") &&
00024 odr_explicit_tag (o, ill_String,
00025 &(*p)->volume, ODR_CONTEXT, 5, 1, "volume") &&
00026 odr_explicit_tag (o, ill_String,
00027 &(*p)->affiliations, ODR_CONTEXT, 6, 1, "affiliations") &&
00028 odr_explicit_tag (o, ill_String,
00029 &(*p)->source, ODR_CONTEXT, 7, 1, "source") &&
00030 odr_sequence_end (o);
00031 }
00032
00033 int ill_SystemNo_s (ODR o, ILL_SystemNo_s **p, int opt, const char *name)
00034 {
00035 if (!odr_sequence_begin (o, p, sizeof(**p), name))
00036 return odr_missing(o, opt, name) && odr_ok (o);
00037 return
00038 ill_System(o, &(*p)->System, 0, "System") &&
00039 ill_RecordNo(o, &(*p)->recordNo, 0, "recordNo") &&
00040 odr_sequence_end (o);
00041 }
00042
00043 int ill_SystemNo (ODR o, ILL_SystemNo **p, int opt, const char *name)
00044 {
00045 if (!odr_initmember (o, p, sizeof(**p)))
00046 return odr_missing(o, opt, name);
00047 if (odr_sequence_of (o, (Odr_fun) ill_SystemNo_s, &(*p)->elements,
00048 &(*p)->num, name))
00049 return 1;
00050 if(o->direction == ODR_DECODE)
00051 *p = 0;
00052 return odr_missing(o, opt, name);
00053 }
00054
00055 int ill_System (ODR o, ILL_System **p, int opt, const char *name)
00056 {
00057 return odr_enum (o, p, opt, name);
00058 }
00059
00060 int ill_RecordNo (ODR o, ILL_RecordNo **p, int opt, const char *name)
00061 {
00062 return ill_String (o, p, opt, name);
00063 }