YAZ  4.2.57
zes-update.c
Go to the documentation of this file.
1 
6 #if HAVE_CONFIG_H
7 #include <config.h>
8 #endif
9 
10 #include <yaz/zes-update.h>
11 
12 int z_IUUpdateEsRequest(ODR o, Z_IUUpdateEsRequest **p, int opt, const char *name)
13 {
14  if (!odr_sequence_begin(o, p, sizeof(**p), name))
15  return odr_missing(o, opt, name) && odr_ok (o);
16  return
18  &(*p)->toKeep, ODR_CONTEXT, 1, 0, "toKeep") &&
20  &(*p)->notToKeep, ODR_CONTEXT, 2, 0, "notToKeep") &&
22 }
23 
25 {
26  if (!odr_sequence_begin(o, p, sizeof(**p), name))
27  return odr_missing(o, opt, name) && odr_ok (o);
28  return
30  &(*p)->originPart, ODR_CONTEXT, 1, 0, "originPart") &&
32  &(*p)->targetPart, ODR_CONTEXT, 2, 0, "targetPart") &&
34 }
35 
36 int z_IUUpdate(ODR o, Z_IUUpdate **p, int opt, const char *name)
37 {
38  static Odr_arm arm[] = {
40  (Odr_fun) z_IUUpdateEsRequest, "esRequest"},
42  (Odr_fun) z_IUUpdateTaskPackage, "taskPackage"},
43  {-1, -1, -1, -1, (Odr_fun) 0, 0}
44  };
45  if (!odr_initmember(o, p, sizeof(**p)))
46  return odr_missing(o, opt, name);
47  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
48  return 1;
49  if (o->direction == ODR_DECODE)
50  *p = 0;
51  return odr_missing(o, opt, name);
52 }
53 
54 int z_IUOriginPartToKeep(ODR o, Z_IUOriginPartToKeep **p, int opt, const char *name)
55 {
56  if (!odr_sequence_begin(o, p, sizeof(**p), name))
57  return odr_missing(o, opt, name) && odr_ok (o);
58  return
60  &(*p)->action, ODR_CONTEXT, 1, 0, "action") &&
62  &(*p)->databaseName, ODR_CONTEXT, 2, 0, "databaseName") &&
64  &(*p)->schema, ODR_CONTEXT, 3, 1, "schema") &&
66  &(*p)->elementSetName, ODR_CONTEXT, 4, 1, "elementSetName") &&
68  &(*p)->actionQualifier, ODR_CONTEXT, 5, 1, "actionQualifier") &&
70 }
71 
72 int z_IUOriginPartNotToKeep(ODR o, Z_IUOriginPartNotToKeep **p, int opt, const char *name)
73 {
74  return z_IUSuppliedRecords (o, p, opt, name);
75 }
76 
77 int z_IUTargetPart(ODR o, Z_IUTargetPart **p, int opt, const char *name)
78 {
79  if (!odr_sequence_begin(o, p, sizeof(**p), name))
80  return odr_missing(o, opt, name) && odr_ok (o);
81  return
83  &(*p)->updateStatus, ODR_CONTEXT, 1, 0, "updateStatus") &&
84  odr_implicit_settag(o, ODR_CONTEXT, 2) &&
85  (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->globalDiagnostics,
86  &(*p)->num_globalDiagnostics, "globalDiagnostics") || odr_ok(o)) &&
87  odr_implicit_settag(o, ODR_CONTEXT, 3) &&
88  odr_sequence_of(o, (Odr_fun) z_IUTaskPackageRecordStructure, &(*p)->taskPackageRecords,
89  &(*p)->num_taskPackageRecords, "taskPackageRecords") &&
91 }
92 
93 int z_IUSuppliedRecordsId(ODR o, Z_IUSuppliedRecordsId **p, int opt, const char *name)
94 {
95  static Odr_arm arm[] = {
97  (Odr_fun) odr_generalizedtime, "timeStamp"},
99  (Odr_fun) z_InternationalString, "versionNumber"},
101  (Odr_fun) z_External, "previousVersion"},
102  {-1, -1, -1, -1, (Odr_fun) 0, 0}
103  };
104  if (!odr_initmember(o, p, sizeof(**p)))
105  return odr_missing(o, opt, name);
106  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
107  return 1;
108  if (o->direction == ODR_DECODE)
109  *p = 0;
110  return odr_missing(o, opt, name);
111 }
112 
113 int z_IUSuppliedRecords_elem(ODR o, Z_IUSuppliedRecords_elem **p, int opt, const char *name)
114 {
115  static Odr_arm arm[] = {
117  (Odr_fun) odr_integer, "number"},
119  (Odr_fun) z_InternationalString, "string"},
121  (Odr_fun) odr_octetstring, "opaque"},
122  {-1, -1, -1, -1, (Odr_fun) 0, 0}
123  };
124  if (!odr_sequence_begin(o, p, sizeof(**p), name))
125  return odr_missing(o, opt, name) && odr_ok (o);
126  return
127  ((odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1, "recordId") &&
128  odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
129  odr_constructed_end(o)) || odr_ok(o)) &&
131  &(*p)->supplementalId, ODR_CONTEXT, 2, 1, "supplementalId") &&
133  &(*p)->correlationInfo, ODR_CONTEXT, 3, 1, "correlationInfo") &&
135  &(*p)->record, ODR_CONTEXT, 4, 0, "record") &&
136  odr_sequence_end(o);
137 }
138 
139 int z_IUSuppliedRecords(ODR o, Z_IUSuppliedRecords **p, int opt, const char *name)
140 {
141  if (!odr_initmember(o, p, sizeof(**p)))
142  return odr_missing(o, opt, name);
143  if (odr_sequence_of(o, (Odr_fun) z_IUSuppliedRecords_elem, &(*p)->elements,
144  &(*p)->num, name))
145  return 1;
146  if (o->direction == ODR_DECODE)
147  *p = 0;
148  return odr_missing(o, opt, name);
149 }
150 
151 int z_IUCorrelationInfo(ODR o, Z_IUCorrelationInfo **p, int opt, const char *name)
152 {
153  if (!odr_sequence_begin(o, p, sizeof(**p), name))
154  return odr_missing(o, opt, name) && odr_ok (o);
155  return
157  &(*p)->note, ODR_CONTEXT, 1, 1, "note") &&
159  &(*p)->id, ODR_CONTEXT, 2, 1, "id") &&
160  odr_sequence_end(o);
161 }
162 
164 {
165  if (!odr_initmember(o, p, sizeof(**p)))
166  return odr_missing(o, opt, name);
167  if (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->elements,
168  &(*p)->num, name))
169  return 1;
170  if (o->direction == ODR_DECODE)
171  *p = 0;
172  return odr_missing(o, opt, name);
173 }
174 
176 {
177  static Odr_arm arm[] = {
179  (Odr_fun) z_External, "record"},
182  {-1, -1, -1, -1, (Odr_fun) 0, 0}
183  };
184  if (!odr_sequence_begin(o, p, sizeof(**p), name))
185  return odr_missing(o, opt, name) && odr_ok (o);
186  return
187  ((odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1, "recordOrSurDiag") &&
188  odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
189  odr_constructed_end(o)) || odr_ok(o)) &&
191  &(*p)->correlationInfo, ODR_CONTEXT, 2, 1, "correlationInfo") &&
193  &(*p)->recordStatus, ODR_CONTEXT, 3, 0, "recordStatus") &&
194  odr_implicit_settag(o, ODR_CONTEXT, 4) &&
195  (odr_sequence_of(o, (Odr_fun) z_DiagRec, &(*p)->supplementalDiagnostics,
196  &(*p)->num_supplementalDiagnostics, "supplementalDiagnostics") || odr_ok(o)) &&
197  odr_sequence_end(o);
198 }