YAZ  5.23.1
z-exp.c
Go to the documentation of this file.
1 
6 #if HAVE_CONFIG_H
7 #include <config.h>
8 #endif
9 
10 #include <yaz/z-exp.h>
11 
12 int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt, const char *name)
13 {
14  static Odr_arm arm[] = {
16  (Odr_fun) z_TargetInfo, "targetInfo"},
18  (Odr_fun) z_DatabaseInfo, "databaseInfo"},
20  (Odr_fun) z_SchemaInfo, "schemaInfo"},
22  (Odr_fun) z_TagSetInfo, "tagSetInfo"},
24  (Odr_fun) z_RecordSyntaxInfo, "recordSyntaxInfo"},
26  (Odr_fun) z_AttributeSetInfo, "attributeSetInfo"},
28  (Odr_fun) z_TermListInfo, "termListInfo"},
30  (Odr_fun) z_ExtendedServicesInfo, "extendedServicesInfo"},
32  (Odr_fun) z_AttributeDetails, "attributeDetails"},
34  (Odr_fun) z_TermListDetails, "termListDetails"},
36  (Odr_fun) z_ElementSetDetails, "elementSetDetails"},
38  (Odr_fun) z_RetrievalRecordDetails, "retrievalRecordDetails"},
40  (Odr_fun) z_SortDetails, "sortDetails"},
42  (Odr_fun) z_ProcessingInformation, "processing"},
44  (Odr_fun) z_VariantSetInfo, "variants"},
46  (Odr_fun) z_UnitInfo, "units"},
48  (Odr_fun) z_CategoryList, "categoryList"},
49  {-1, -1, -1, -1, (Odr_fun) 0, 0}
50  };
51  if (!odr_initmember(o, p, sizeof(**p)))
52  return odr_missing(o, opt, name);
53  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
54  return 1;
55  if (o->direction == ODR_DECODE)
56  *p = 0;
57  return odr_missing(o, opt, name);
58 }
59 
60 int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt, const char *name)
61 {
62  if (!odr_sequence_begin(o, p, sizeof(**p), name))
63  return odr_missing(o, opt, name) && odr_ok (o);
64  return
66  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
68  &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
70  &(*p)->recentNews, ODR_CONTEXT, 2, 1, "recentNews") &&
72  &(*p)->icon, ODR_CONTEXT, 3, 1, "icon") &&
74  &(*p)->namedResultSets, ODR_CONTEXT, 4, 0, "namedResultSets") &&
76  &(*p)->multipleDBsearch, ODR_CONTEXT, 5, 0, "multipleDBsearch") &&
78  &(*p)->maxResultSets, ODR_CONTEXT, 6, 1, "maxResultSets") &&
80  &(*p)->maxResultSize, ODR_CONTEXT, 7, 1, "maxResultSize") &&
82  &(*p)->maxTerms, ODR_CONTEXT, 8, 1, "maxTerms") &&
84  &(*p)->timeoutInterval, ODR_CONTEXT, 9, 1, "timeoutInterval") &&
86  &(*p)->welcomeMessage, ODR_CONTEXT, 10, 1, "welcomeMessage") &&
88  &(*p)->contactInfo, ODR_CONTEXT, 11, 1, "contactInfo") &&
90  &(*p)->description, ODR_CONTEXT, 12, 1, "description") &&
92  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames,
93  &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
95  &(*p)->usageRest, ODR_CONTEXT, 14, 1, "usageRest") &&
97  &(*p)->paymentAddr, ODR_CONTEXT, 15, 1, "paymentAddr") &&
99  &(*p)->hours, ODR_CONTEXT, 16, 1, "hours") &&
101  (odr_sequence_of(o, (Odr_fun) z_DatabaseList, &(*p)->dbCombinations,
102  &(*p)->num_dbCombinations, "dbCombinations") || odr_ok(o)) &&
104  (odr_sequence_of(o, (Odr_fun) z_NetworkAddress, &(*p)->addresses,
105  &(*p)->num_addresses, "addresses") || odr_ok(o)) &&
106  odr_implicit_settag(o, ODR_CONTEXT, 101) &&
107  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->languages,
108  &(*p)->num_languages, "languages") || odr_ok(o)) &&
110  &(*p)->commonAccessInfo, ODR_CONTEXT, 19, 1, "commonAccessInfo") &&
111  odr_sequence_end(o);
112 }
113 
114 int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt, const char *name)
115 {
116  static Odr_arm arm[] = {
118  (Odr_fun) odr_integer, "actualNumber"},
120  (Odr_fun) odr_integer, "approxNumber"},
121  {-1, -1, -1, -1, (Odr_fun) 0, 0}
122  };
123  if (!odr_sequence_begin(o, p, sizeof(**p), name))
124  return odr_missing(o, opt, name) && odr_ok (o);
125  return
127  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
129  &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
131  &(*p)->explainDatabase, ODR_CONTEXT, 2, 1, "explainDatabase") &&
133  (odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->nicknames,
134  &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
136  &(*p)->icon, ODR_CONTEXT, 4, 1, "icon") &&
138  &(*p)->userFee, ODR_CONTEXT, 5, 0, "userFee") &&
140  &(*p)->available, ODR_CONTEXT, 6, 0, "available") &&
142  &(*p)->titleString, ODR_CONTEXT, 7, 1, "titleString") &&
144  (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->keywords,
145  &(*p)->num_keywords, "keywords") || odr_ok(o)) &&
146  odr_implicit_tag(o, z_HumanString,
147  &(*p)->description, ODR_CONTEXT, 9, 1, "description") &&
149  &(*p)->associatedDbs, ODR_CONTEXT, 10, 1, "associatedDbs") &&
151  &(*p)->subDbs, ODR_CONTEXT, 11, 1, "subDbs") &&
152  odr_implicit_tag(o, z_HumanString,
153  &(*p)->disclaimers, ODR_CONTEXT, 12, 1, "disclaimers") &&
154  odr_implicit_tag(o, z_HumanString,
155  &(*p)->news, ODR_CONTEXT, 13, 1, "news") &&
156  ((odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 14, "recordCount") &&
157  odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
158  odr_constructed_end(o)) || odr_ok(o)) &&
159  odr_implicit_tag(o, z_HumanString,
160  &(*p)->defaultOrder, ODR_CONTEXT, 15, 1, "defaultOrder") &&
162  &(*p)->avRecordSize, ODR_CONTEXT, 16, 1, "avRecordSize") &&
164  &(*p)->maxRecordSize, ODR_CONTEXT, 17, 1, "maxRecordSize") &&
165  odr_implicit_tag(o, z_HumanString,
166  &(*p)->hours, ODR_CONTEXT, 18, 1, "hours") &&
167  odr_implicit_tag(o, z_HumanString,
168  &(*p)->bestTime, ODR_CONTEXT, 19, 1, "bestTime") &&
170  &(*p)->lastUpdate, ODR_CONTEXT, 20, 1, "lastUpdate") &&
172  &(*p)->updateInterval, ODR_CONTEXT, 21, 1, "updateInterval") &&
173  odr_implicit_tag(o, z_HumanString,
174  &(*p)->coverage, ODR_CONTEXT, 22, 1, "coverage") &&
176  &(*p)->proprietary, ODR_CONTEXT, 23, 1, "proprietary") &&
177  odr_implicit_tag(o, z_HumanString,
178  &(*p)->copyrightText, ODR_CONTEXT, 24, 1, "copyrightText") &&
179  odr_implicit_tag(o, z_HumanString,
180  &(*p)->copyrightNotice, ODR_CONTEXT, 25, 1, "copyrightNotice") &&
182  &(*p)->producerContactInfo, ODR_CONTEXT, 26, 1, "producerContactInfo") &&
184  &(*p)->supplierContactInfo, ODR_CONTEXT, 27, 1, "supplierContactInfo") &&
186  &(*p)->submissionContactInfo, ODR_CONTEXT, 28, 1, "submissionContactInfo") &&
188  &(*p)->accessInfo, ODR_CONTEXT, 29, 1, "accessInfo") &&
189  odr_sequence_end(o);
190 }
191 
192 int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt, const char *name)
193 {
194  if (!odr_sequence_begin(o, p, sizeof(**p), name))
195  return odr_missing(o, opt, name) && odr_ok (o);
196  return
198  &(*p)->tagType, ODR_CONTEXT, 0, 0, "tagType") &&
200  &(*p)->tagSet, ODR_CONTEXT, 1, 1, "tagSet") &&
202  &(*p)->defaultTagType, ODR_CONTEXT, 2, 1, "defaultTagType") &&
203  odr_sequence_end(o);
204 }
205 
206 int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt, const char *name)
207 {
208  if (!odr_sequence_begin(o, p, sizeof(**p), name))
209  return odr_missing(o, opt, name) && odr_ok (o);
210  return
212  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
214  &(*p)->schema, ODR_CONTEXT, 1, 0, "schema") &&
216  &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
218  &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
220  (odr_sequence_of(o, (Odr_fun) z_TagTypeMapping, &(*p)->tagTypeMapping,
221  &(*p)->num_tagTypeMapping, "tagTypeMapping") || odr_ok(o)) &&
223  (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->recordStructure,
224  &(*p)->num_recordStructure, "recordStructure") || odr_ok(o)) &&
225  odr_sequence_end(o);
226 }
227 
228 int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt, const char *name)
229 {
230  if (!odr_sequence_begin(o, p, sizeof(**p), name))
231  return odr_missing(o, opt, name) && odr_ok (o);
232  return
234  &(*p)->elementName, ODR_CONTEXT, 1, 0, "elementName") &&
236  &(*p)->elementTagPath, ODR_CONTEXT, 2, 0, "elementTagPath") &&
238  &(*p)->dataType, ODR_CONTEXT, 3, 1, "dataType") &&
240  &(*p)->required, ODR_CONTEXT, 4, 0, "required") &&
242  &(*p)->repeatable, ODR_CONTEXT, 5, 0, "repeatable") &&
244  &(*p)->description, ODR_CONTEXT, 6, 1, "description") &&
245  odr_sequence_end(o);
246 }
247 
248 int z_PathUnit(ODR o, Z_PathUnit **p, int opt, const char *name)
249 {
250  if (!odr_sequence_begin(o, p, sizeof(**p), name))
251  return odr_missing(o, opt, name) && odr_ok (o);
252  return
254  &(*p)->tagType, ODR_CONTEXT, 1, 0, "tagType") &&
256  &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") &&
257  odr_sequence_end(o);
258 }
259 
260 int z_Path(ODR o, Z_Path **p, int opt, const char *name)
261 {
262  if (!odr_initmember(o, p, sizeof(**p)))
263  return odr_missing(o, opt, name);
264  if (odr_sequence_of(o, (Odr_fun) z_PathUnit, &(*p)->elements,
265  &(*p)->num, name))
266  return 1;
267  if (o->direction == ODR_DECODE)
268  *p = 0;
269  return odr_missing(o, opt, name);
270 }
271 
272 int z_ElementInfoList(ODR o, Z_ElementInfoList **p, int opt, const char *name)
273 {
274  if (!odr_initmember(o, p, sizeof(**p)))
275  return odr_missing(o, opt, name);
276  if (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->elements,
277  &(*p)->num, name))
278  return 1;
279  if (o->direction == ODR_DECODE)
280  *p = 0;
281  return odr_missing(o, opt, name);
282 }
283 
284 int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt, const char *name)
285 {
286  static Odr_arm arm[] = {
288  (Odr_fun) z_PrimitiveDataType, "primitive"},
290  (Odr_fun) z_ElementInfoList, "structured"},
291  {-1, -1, -1, -1, (Odr_fun) 0, 0}
292  };
293  if (!odr_initmember(o, p, sizeof(**p)))
294  return odr_missing(o, opt, name);
295  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
296  return 1;
297  if (o->direction == ODR_DECODE)
298  *p = 0;
299  return odr_missing(o, opt, name);
300 }
301 
302 int z_PrimitiveDataType(ODR o, Z_PrimitiveDataType **p, int opt, const char *name)
303 {
304  return odr_integer (o, p, opt, name);
305 }
306 
307 int z_TagSetElements(ODR o, Z_TagSetElements **p, int opt, const char *name)
308 {
309  if (!odr_sequence_begin(o, p, sizeof(**p), name))
310  return odr_missing(o, opt, name) && odr_ok (o);
311  return
313  &(*p)->elementname, ODR_CONTEXT, 1, 0, "elementname") &&
315  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->nicknames,
316  &(*p)->num_nicknames, "nicknames") || odr_ok(o)) &&
318  &(*p)->elementTag, ODR_CONTEXT, 3, 0, "elementTag") &&
320  &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
322  &(*p)->dataType, ODR_CONTEXT, 5, 1, "dataType") &&
323  z_OtherInformation(o, &(*p)->otherTagInfo, 1, "otherTagInfo") &&
324  odr_sequence_end(o);
325 }
326 
327 int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt, const char *name)
328 {
329  if (!odr_sequence_begin(o, p, sizeof(**p), name))
330  return odr_missing(o, opt, name) && odr_ok (o);
331  return
333  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
335  &(*p)->tagSet, ODR_CONTEXT, 1, 0, "tagSet") &&
337  &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
339  &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
341  (odr_sequence_of(o, (Odr_fun) z_TagSetElements, &(*p)->elements,
342  &(*p)->num_elements, "elements") || odr_ok(o)) &&
343  odr_sequence_end(o);
344 }
345 
346 int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name)
347 {
348  if (!odr_sequence_begin(o, p, sizeof(**p), name))
349  return odr_missing(o, opt, name) && odr_ok (o);
350  return
352  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
354  &(*p)->recordSyntax, ODR_CONTEXT, 1, 0, "recordSyntax") &&
356  &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
358  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->transferSyntaxes,
359  &(*p)->num_transferSyntaxes, "transferSyntaxes") || odr_ok(o)) &&
361  &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
363  &(*p)->asn1Module, ODR_CONTEXT, 5, 1, "asn1Module") &&
365  (odr_sequence_of(o, (Odr_fun) z_ElementInfo, &(*p)->abstractStructure,
366  &(*p)->num_abstractStructure, "abstractStructure") || odr_ok(o)) &&
367  odr_sequence_end(o);
368 }
369 
370 int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt, const char *name)
371 {
372  if (!odr_sequence_begin(o, p, sizeof(**p), name))
373  return odr_missing(o, opt, name) && odr_ok (o);
374  return
376  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
378  &(*p)->attributeSet, ODR_CONTEXT, 1, 0, "attributeSet") &&
380  &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
382  (odr_sequence_of(o, (Odr_fun) z_AttributeType, &(*p)->attributes,
383  &(*p)->num_attributes, "attributes") || odr_ok(o)) &&
385  &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
386  odr_sequence_end(o);
387 }
388 
389 int z_AttributeType(ODR o, Z_AttributeType **p, int opt, const char *name)
390 {
391  if (!odr_sequence_begin(o, p, sizeof(**p), name))
392  return odr_missing(o, opt, name) && odr_ok (o);
393  return
395  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
397  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
399  &(*p)->attributeType, ODR_CONTEXT, 2, 0, "attributeType") &&
401  odr_sequence_of(o, (Odr_fun) z_AttributeDescription, &(*p)->attributeValues,
402  &(*p)->num_attributeValues, "attributeValues") &&
403  odr_sequence_end(o);
404 }
405 
407 {
408  if (!odr_sequence_begin(o, p, sizeof(**p), name))
409  return odr_missing(o, opt, name) && odr_ok (o);
410  return
412  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
414  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
416  &(*p)->attributeValue, ODR_CONTEXT, 2, 0, "attributeValue") &&
418  (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->equivalentAttributes,
419  &(*p)->num_equivalentAttributes, "equivalentAttributes") || odr_ok(o)) &&
420  odr_sequence_end(o);
421 }
422 
423 int z_TermListElement(ODR o, Z_TermListElement **p, int opt, const char *name)
424 {
425  if (!odr_sequence_begin(o, p, sizeof(**p), name))
426  return odr_missing(o, opt, name) && odr_ok (o);
427  return
429  &(*p)->name, ODR_CONTEXT, 1, 0, "name") &&
431  &(*p)->title, ODR_CONTEXT, 2, 1, "title") &&
433  &(*p)->searchCost, ODR_CONTEXT, 3, 1, "searchCost") &&
435  &(*p)->scanable, ODR_CONTEXT, 4, 0, "scanable") &&
437  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->broader,
438  &(*p)->num_broader, "broader") || odr_ok(o)) &&
440  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->narrower,
441  &(*p)->num_narrower, "narrower") || odr_ok(o)) &&
442  odr_sequence_end(o);
443 }
444 
445 int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt, const char *name)
446 {
447  if (!odr_sequence_begin(o, p, sizeof(**p), name))
448  return odr_missing(o, opt, name) && odr_ok (o);
449  return
451  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
453  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
455  odr_sequence_of(o, (Odr_fun) z_TermListElement, &(*p)->termLists,
456  &(*p)->num_termLists, "termLists") &&
457  odr_sequence_end(o);
458 }
459 
461 {
462  if (!odr_sequence_begin(o, p, sizeof(**p), name))
463  return odr_missing(o, opt, name) && odr_ok (o);
464  return
466  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
468  &(*p)->type, ODR_CONTEXT, 1, 0, "type") &&
470  &(*p)->name, ODR_CONTEXT, 2, 1, "name") &&
472  &(*p)->privateType, ODR_CONTEXT, 3, 0, "privateType") &&
474  &(*p)->restrictionsApply, ODR_CONTEXT, 5, 0, "restrictionsApply") &&
476  &(*p)->feeApply, ODR_CONTEXT, 6, 0, "feeApply") &&
478  &(*p)->available, ODR_CONTEXT, 7, 0, "available") &&
480  &(*p)->retentionSupported, ODR_CONTEXT, 8, 0, "retentionSupported") &&
482  &(*p)->waitAction, ODR_CONTEXT, 9, 0, "waitAction") &&
484  &(*p)->description, ODR_CONTEXT, 10, 1, "description") &&
486  &(*p)->specificExplain, ODR_CONTEXT, 11, 1, "specificExplain") &&
488  &(*p)->esASN, ODR_CONTEXT, 12, 1, "esASN") &&
489  odr_sequence_end(o);
490 }
491 
492 int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt, const char *name)
493 {
494  if (!odr_sequence_begin(o, p, sizeof(**p), name))
495  return odr_missing(o, opt, name) && odr_ok (o);
496  return
498  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
500  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
502  (odr_sequence_of(o, (Odr_fun) z_AttributeSetDetails, &(*p)->attributesBySet,
503  &(*p)->num_attributesBySet, "attributesBySet") || odr_ok(o)) &&
505  &(*p)->attributeCombinations, ODR_CONTEXT, 3, 1, "attributeCombinations") &&
506  odr_sequence_end(o);
507 }
508 
510 {
511  if (!odr_sequence_begin(o, p, sizeof(**p), name))
512  return odr_missing(o, opt, name) && odr_ok (o);
513  return
515  &(*p)->attributeSet, ODR_CONTEXT, 0, 0, "attributeSet") &&
517  odr_sequence_of(o, (Odr_fun) z_AttributeTypeDetails, &(*p)->attributesByType,
518  &(*p)->num_attributesByType, "attributesByType") &&
519  odr_sequence_end(o);
520 }
521 
523 {
524  if (!odr_sequence_begin(o, p, sizeof(**p), name))
525  return odr_missing(o, opt, name) && odr_ok (o);
526  return
528  &(*p)->attributeType, ODR_CONTEXT, 0, 0, "attributeType") &&
530  &(*p)->defaultIfOmitted, ODR_CONTEXT, 1, 1, "defaultIfOmitted") &&
532  (odr_sequence_of(o, (Odr_fun) z_AttributeValue, &(*p)->attributeValues,
533  &(*p)->num_attributeValues, "attributeValues") || odr_ok(o)) &&
534  odr_sequence_end(o);
535 }
536 
538 {
539  if (!odr_sequence_begin(o, p, sizeof(**p), name))
540  return odr_missing(o, opt, name) && odr_ok (o);
541  return
543  &(*p)->defaultValue, ODR_CONTEXT, 0, 1, "defaultValue") &&
545  &(*p)->defaultDescription, ODR_CONTEXT, 1, 1, "defaultDescription") &&
546  odr_sequence_end(o);
547 }
548 
549 int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt, const char *name)
550 {
551  if (!odr_sequence_begin(o, p, sizeof(**p), name))
552  return odr_missing(o, opt, name) && odr_ok (o);
553  return
555  &(*p)->value, ODR_CONTEXT, 0, 0, "value") &&
557  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
559  (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->subAttributes,
560  &(*p)->num_subAttributes, "subAttributes") || odr_ok(o)) &&
562  (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->superAttributes,
563  &(*p)->num_superAttributes, "superAttributes") || odr_ok(o)) &&
565  &(*p)->partialSupport, ODR_CONTEXT, 4, 1, "partialSupport") &&
566  odr_sequence_end(o);
567 }
568 
569 int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt, const char *name)
570 {
571  if (!odr_sequence_begin(o, p, sizeof(**p), name))
572  return odr_missing(o, opt, name) && odr_ok (o);
573  return
575  &(*p)->maxStepSize, ODR_CONTEXT, 0, 1, "maxStepSize") &&
577  &(*p)->collatingSequence, ODR_CONTEXT, 1, 1, "collatingSequence") &&
579  &(*p)->increasing, ODR_CONTEXT, 2, 1, "increasing") &&
580  odr_sequence_end(o);
581 }
582 
583 int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt, const char *name)
584 {
585  if (!odr_sequence_begin(o, p, sizeof(**p), name))
586  return odr_missing(o, opt, name) && odr_ok (o);
587  return
589  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
591  &(*p)->termListName, ODR_CONTEXT, 1, 0, "termListName") &&
593  &(*p)->description, ODR_CONTEXT, 2, 1, "description") &&
595  &(*p)->attributes, ODR_CONTEXT, 3, 1, "attributes") &&
597  &(*p)->scanInfo, ODR_CONTEXT, 4, 1, "scanInfo") &&
599  &(*p)->estNumberTerms, ODR_CONTEXT, 5, 1, "estNumberTerms") &&
601  (odr_sequence_of(o, (Odr_fun) z_Term, &(*p)->sampleTerms,
602  &(*p)->num_sampleTerms, "sampleTerms") || odr_ok(o)) &&
603  odr_sequence_end(o);
604 }
605 
606 int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt, const char *name)
607 {
608  if (!odr_sequence_begin(o, p, sizeof(**p), name))
609  return odr_missing(o, opt, name) && odr_ok (o);
610  return
612  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
614  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
616  &(*p)->elementSetName, ODR_CONTEXT, 2, 0, "elementSetName") &&
618  &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") &&
620  &(*p)->schema, ODR_CONTEXT, 4, 0, "schema") &&
622  &(*p)->description, ODR_CONTEXT, 5, 1, "description") &&
624  (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement,
625  &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) &&
626  odr_sequence_end(o);
627 }
628 
630 {
631  if (!odr_sequence_begin(o, p, sizeof(**p), name))
632  return odr_missing(o, opt, name) && odr_ok (o);
633  return
635  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
637  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
639  &(*p)->schema, ODR_CONTEXT, 2, 0, "schema") &&
641  &(*p)->recordSyntax, ODR_CONTEXT, 3, 0, "recordSyntax") &&
643  &(*p)->description, ODR_CONTEXT, 4, 1, "description") &&
645  (odr_sequence_of(o, (Odr_fun) z_PerElementDetails, &(*p)->detailsPerElement,
646  &(*p)->num_detailsPerElement, "detailsPerElement") || odr_ok(o)) &&
647  odr_sequence_end(o);
648 }
649 
650 int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt, const char *name)
651 {
652  if (!odr_sequence_begin(o, p, sizeof(**p), name))
653  return odr_missing(o, opt, name) && odr_ok (o);
654  return
656  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
658  &(*p)->recordTag, ODR_CONTEXT, 1, 1, "recordTag") &&
660  (odr_sequence_of(o, (Odr_fun) z_Path, &(*p)->schemaTags,
661  &(*p)->num_schemaTags, "schemaTags") || odr_ok(o)) &&
663  &(*p)->maxSize, ODR_CONTEXT, 3, 1, "maxSize") &&
665  &(*p)->minSize, ODR_CONTEXT, 4, 1, "minSize") &&
667  &(*p)->avgSize, ODR_CONTEXT, 5, 1, "avgSize") &&
669  &(*p)->fixedSize, ODR_CONTEXT, 6, 1, "fixedSize") &&
671  &(*p)->repeatable, ODR_CONTEXT, 8, 0, "repeatable") &&
673  &(*p)->required, ODR_CONTEXT, 9, 0, "required") &&
675  &(*p)->description, ODR_CONTEXT, 12, 1, "description") &&
677  &(*p)->contents, ODR_CONTEXT, 13, 1, "contents") &&
679  &(*p)->billingInfo, ODR_CONTEXT, 14, 1, "billingInfo") &&
681  &(*p)->restrictions, ODR_CONTEXT, 15, 1, "restrictions") &&
683  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->alternateNames,
684  &(*p)->num_alternateNames, "alternateNames") || odr_ok(o)) &&
686  (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->genericNames,
687  &(*p)->num_genericNames, "genericNames") || odr_ok(o)) &&
689  &(*p)->searchAccess, ODR_CONTEXT, 18, 1, "searchAccess") &&
690  odr_sequence_end(o);
691 }
692 
693 int z_RecordTag(ODR o, Z_RecordTag **p, int opt, const char *name)
694 {
695  if (!odr_sequence_begin(o, p, sizeof(**p), name))
696  return odr_missing(o, opt, name) && odr_ok (o);
697  return
699  &(*p)->qualifier, ODR_CONTEXT, 0, 1, "qualifier") &&
701  &(*p)->tagValue, ODR_CONTEXT, 1, 0, "tagValue") &&
702  odr_sequence_end(o);
703 }
704 
705 int z_SortDetails(ODR o, Z_SortDetails **p, int opt, const char *name)
706 {
707  if (!odr_sequence_begin(o, p, sizeof(**p), name))
708  return odr_missing(o, opt, name) && odr_ok (o);
709  return
711  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
713  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
715  (odr_sequence_of(o, (Odr_fun) z_SortKeyDetails, &(*p)->sortKeys,
716  &(*p)->num_sortKeys, "sortKeys") || odr_ok(o)) &&
717  odr_sequence_end(o);
718 }
719 
720 int z_SortKeyDetails(ODR o, Z_SortKeyDetails **p, int opt, const char *name)
721 {
722  static Odr_arm arm[] = {
724  (Odr_fun) odr_null, "character"},
726  (Odr_fun) odr_null, "numeric"},
728  (Odr_fun) z_HumanString, "structured"},
729  {-1, -1, -1, -1, (Odr_fun) 0, 0}
730  };
731  if (!odr_sequence_begin(o, p, sizeof(**p), name))
732  return odr_missing(o, opt, name) && odr_ok (o);
733  return
735  &(*p)->description, ODR_CONTEXT, 0, 1, "description") &&
737  (odr_sequence_of(o, (Odr_fun) z_Specification, &(*p)->elementSpecifications,
738  &(*p)->num_elementSpecifications, "elementSpecifications") || odr_ok(o)) &&
740  &(*p)->attributeSpecifications, ODR_CONTEXT, 2, 1, "attributeSpecifications") &&
741  ((odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 3, "sortType") &&
742  odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
743  odr_constructed_end(o)) || odr_ok(o)) &&
745  &(*p)->caseSensitivity, ODR_CONTEXT, 4, 1, "caseSensitivity") &&
746  odr_sequence_end(o);
747 }
748 
750 {
751  if (!odr_sequence_begin(o, p, sizeof(**p), name))
752  return odr_missing(o, opt, name) && odr_ok (o);
753  return
755  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
757  &(*p)->databaseName, ODR_CONTEXT, 1, 0, "databaseName") &&
759  &(*p)->processingContext, ODR_CONTEXT, 2, 0, "processingContext") &&
761  &(*p)->name, ODR_CONTEXT, 3, 0, "name") &&
763  &(*p)->oid, ODR_CONTEXT, 4, 0, "oid") &&
765  &(*p)->description, ODR_CONTEXT, 5, 1, "description") &&
767  &(*p)->instructions, ODR_CONTEXT, 6, 1, "instructions") &&
768  odr_sequence_end(o);
769 }
770 
771 int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt, const char *name)
772 {
773  if (!odr_sequence_begin(o, p, sizeof(**p), name))
774  return odr_missing(o, opt, name) && odr_ok (o);
775  return
777  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
779  &(*p)->variantSet, ODR_CONTEXT, 1, 0, "variantSet") &&
781  &(*p)->name, ODR_CONTEXT, 2, 0, "name") &&
783  (odr_sequence_of(o, (Odr_fun) z_VariantClass, &(*p)->variants,
784  &(*p)->num_variants, "variants") || odr_ok(o)) &&
785  odr_sequence_end(o);
786 }
787 
788 int z_VariantClass(ODR o, Z_VariantClass **p, int opt, const char *name)
789 {
790  if (!odr_sequence_begin(o, p, sizeof(**p), name))
791  return odr_missing(o, opt, name) && odr_ok (o);
792  return
794  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
796  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
798  &(*p)->variantClass, ODR_CONTEXT, 2, 0, "variantClass") &&
800  odr_sequence_of(o, (Odr_fun) z_VariantType, &(*p)->variantTypes,
801  &(*p)->num_variantTypes, "variantTypes") &&
802  odr_sequence_end(o);
803 }
804 
805 int z_VariantType(ODR o, Z_VariantType **p, int opt, const char *name)
806 {
807  if (!odr_sequence_begin(o, p, sizeof(**p), name))
808  return odr_missing(o, opt, name) && odr_ok (o);
809  return
811  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
813  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
815  &(*p)->variantType, ODR_CONTEXT, 2, 0, "variantType") &&
817  &(*p)->variantValue, ODR_CONTEXT, 3, 1, "variantValue") &&
818  odr_sequence_end(o);
819 }
820 
821 int z_VariantValue(ODR o, Z_VariantValue **p, int opt, const char *name)
822 {
823  if (!odr_sequence_begin(o, p, sizeof(**p), name))
824  return odr_missing(o, opt, name) && odr_ok (o);
825  return
827  &(*p)->dataType, ODR_CONTEXT, 0, 0, "dataType") &&
829  &(*p)->values, ODR_CONTEXT, 1, 1, "values") &&
830  odr_sequence_end(o);
831 }
832 
833 int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt, const char *name)
834 {
835  if (!odr_initmember(o, p, sizeof(**p)))
836  return odr_missing(o, opt, name);
837  if (odr_sequence_of(o, (Odr_fun) z_ValueDescription, &(*p)->elements,
838  &(*p)->num, name))
839  return 1;
840  if (o->direction == ODR_DECODE)
841  *p = 0;
842  return odr_missing(o, opt, name);
843 }
844 
845 int z_ValueSet(ODR o, Z_ValueSet **p, int opt, const char *name)
846 {
847  static Odr_arm arm[] = {
849  (Odr_fun) z_ValueRange, "range"},
851  (Odr_fun) z_ValueSetEnumerated, "enumerated"},
852  {-1, -1, -1, -1, (Odr_fun) 0, 0}
853  };
854  if (!odr_initmember(o, p, sizeof(**p)))
855  return odr_missing(o, opt, name);
856  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
857  return 1;
858  if (o->direction == ODR_DECODE)
859  *p = 0;
860  return odr_missing(o, opt, name);
861 }
862 
863 int z_ValueRange(ODR o, Z_ValueRange **p, int opt, const char *name)
864 {
865  if (!odr_sequence_begin(o, p, sizeof(**p), name))
866  return odr_missing(o, opt, name) && odr_ok (o);
867  return
869  &(*p)->lower, ODR_CONTEXT, 0, 1, "lower") &&
871  &(*p)->upper, ODR_CONTEXT, 1, 1, "upper") &&
872  odr_sequence_end(o);
873 }
874 
875 int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt, const char *name)
876 {
877  static Odr_arm arm[] = {
878  {-1, -1, -1, Z_ValueDescription_integer,
879  (Odr_fun) odr_integer, "integer"},
880  {-1, -1, -1, Z_ValueDescription_string,
881  (Odr_fun) z_InternationalString, "string"},
882  {-1, -1, -1, Z_ValueDescription_octets,
883  (Odr_fun) odr_octetstring, "octets"},
884  {-1, -1, -1, Z_ValueDescription_oid,
885  (Odr_fun) odr_oid, "oid"},
887  (Odr_fun) z_Unit, "unit"},
889  (Odr_fun) z_IntUnit, "valueAndUnit"},
890  {-1, -1, -1, -1, (Odr_fun) 0, 0}
891  };
892  if (!odr_initmember(o, p, sizeof(**p)))
893  return odr_missing(o, opt, name);
894  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
895  return 1;
896  if (o->direction == ODR_DECODE)
897  *p = 0;
898  return odr_missing(o, opt, name);
899 }
900 
901 int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt, const char *name)
902 {
903  if (!odr_sequence_begin(o, p, sizeof(**p), name))
904  return odr_missing(o, opt, name) && odr_ok (o);
905  return
907  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
909  &(*p)->unitSystem, ODR_CONTEXT, 1, 0, "unitSystem") &&
911  &(*p)->description, ODR_CONTEXT, 2, 1, "description") &&
913  (odr_sequence_of(o, (Odr_fun) z_UnitType, &(*p)->units,
914  &(*p)->num_units, "units") || odr_ok(o)) &&
915  odr_sequence_end(o);
916 }
917 
918 int z_UnitType(ODR o, Z_UnitType **p, int opt, const char *name)
919 {
920  if (!odr_sequence_begin(o, p, sizeof(**p), name))
921  return odr_missing(o, opt, name) && odr_ok (o);
922  return
924  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
926  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
928  &(*p)->unitType, ODR_CONTEXT, 2, 0, "unitType") &&
930  odr_sequence_of(o, (Odr_fun) z_Units, &(*p)->units,
931  &(*p)->num_units, "units") &&
932  odr_sequence_end(o);
933 }
934 
935 int z_Units(ODR o, Z_Units **p, int opt, const char *name)
936 {
937  if (!odr_sequence_begin(o, p, sizeof(**p), name))
938  return odr_missing(o, opt, name) && odr_ok (o);
939  return
941  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
943  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
945  &(*p)->unit, ODR_CONTEXT, 2, 0, "unit") &&
946  odr_sequence_end(o);
947 }
948 
949 int z_CategoryList(ODR o, Z_CategoryList **p, int opt, const char *name)
950 {
951  if (!odr_sequence_begin(o, p, sizeof(**p), name))
952  return odr_missing(o, opt, name) && odr_ok (o);
953  return
955  &(*p)->commonInfo, ODR_CONTEXT, 0, 1, "commonInfo") &&
957  odr_sequence_of(o, (Odr_fun) z_CategoryInfo, &(*p)->categories,
958  &(*p)->num_categories, "categories") &&
959  odr_sequence_end(o);
960 }
961 
962 int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt, const char *name)
963 {
964  if (!odr_sequence_begin(o, p, sizeof(**p), name))
965  return odr_missing(o, opt, name) && odr_ok (o);
966  return
968  &(*p)->category, ODR_CONTEXT, 1, 0, "category") &&
970  &(*p)->originalCategory, ODR_CONTEXT, 2, 1, "originalCategory") &&
972  &(*p)->description, ODR_CONTEXT, 3, 1, "description") &&
974  &(*p)->asn1Module, ODR_CONTEXT, 4, 1, "asn1Module") &&
975  odr_sequence_end(o);
976 }
977 
978 int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt, const char *name)
979 {
980  if (!odr_sequence_begin(o, p, sizeof(**p), name))
981  return odr_missing(o, opt, name) && odr_ok (o);
982  return
984  &(*p)->dateAdded, ODR_CONTEXT, 0, 1, "dateAdded") &&
986  &(*p)->dateChanged, ODR_CONTEXT, 1, 1, "dateChanged") &&
988  &(*p)->expiry, ODR_CONTEXT, 2, 1, "expiry") &&
990  &(*p)->humanStringLanguage, ODR_CONTEXT, 3, 1, "humanStringLanguage") &&
991  z_OtherInformation(o, &(*p)->otherInfo, 1, "otherInfo") &&
992  odr_sequence_end(o);
993 }
994 
995 int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt, const char *name)
996 {
997  if (!odr_sequence_begin(o, p, sizeof(**p), name))
998  return odr_missing(o, opt, name) && odr_ok (o);
999  return
1001  &(*p)->language, ODR_CONTEXT, 0, 1, "language") &&
1003  &(*p)->text, ODR_CONTEXT, 1, 0, "text") &&
1004  odr_sequence_end(o);
1005 }
1006 
1007 int z_HumanString(ODR o, Z_HumanString **p, int opt, const char *name)
1008 {
1009  if (!odr_initmember(o, p, sizeof(**p)))
1010  return odr_missing(o, opt, name);
1011  if (odr_sequence_of(o, (Odr_fun) z_HumanStringUnit, &(*p)->strings,
1012  &(*p)->num_strings, name))
1013  return 1;
1014  if (o->direction == ODR_DECODE)
1015  *p = 0;
1016  return odr_missing(o, opt, name);
1017 }
1018 
1019 int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt, const char *name)
1020 {
1021  static Odr_arm arm[] = {
1023  (Odr_fun) z_InternationalString, "ianaType"},
1025  (Odr_fun) z_InternationalString, "z3950type"},
1027  (Odr_fun) z_InternationalString, "otherType"},
1028  {-1, -1, -1, -1, (Odr_fun) 0, 0}
1029  };
1030  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1031  return odr_missing(o, opt, name) && odr_ok (o);
1032  return
1033  odr_constructed_begin(o, &(*p)->u, ODR_CONTEXT, 1, "bodyType") &&
1034  odr_choice(o, arm, &(*p)->u, &(*p)->which, 0) &&
1035  odr_constructed_end(o) &&
1037  &(*p)->content, ODR_CONTEXT, 2, 0, "content") &&
1038  odr_sequence_end(o);
1039 }
1040 
1041 int z_IconObject(ODR o, Z_IconObject **p, int opt, const char *name)
1042 {
1043  if (!odr_initmember(o, p, sizeof(**p)))
1044  return odr_missing(o, opt, name);
1045  if (odr_sequence_of(o, (Odr_fun) z_IconObjectUnit, &(*p)->elements,
1046  &(*p)->num, name))
1047  return 1;
1048  if (o->direction == ODR_DECODE)
1049  *p = 0;
1050  return odr_missing(o, opt, name);
1051 }
1052 
1053 int z_LanguageCode(ODR o, Z_LanguageCode **p, int opt, const char *name)
1054 {
1055  return z_InternationalString (o, p, opt, name);
1056 }
1057 
1058 int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt, const char *name)
1059 {
1060  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1061  return odr_missing(o, opt, name) && odr_ok (o);
1062  return
1064  &(*p)->name, ODR_CONTEXT, 0, 1, "name") &&
1066  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1068  &(*p)->address, ODR_CONTEXT, 2, 1, "address") &&
1070  &(*p)->email, ODR_CONTEXT, 3, 1, "email") &&
1072  &(*p)->phone, ODR_CONTEXT, 4, 1, "phone") &&
1073  odr_sequence_end(o);
1074 }
1075 
1076 int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt, const char *name)
1077 {
1078  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1079  return odr_missing(o, opt, name) && odr_ok (o);
1080  return
1082  &(*p)->hostAddress, ODR_CONTEXT, 0, 0, "hostAddress") &&
1084  &(*p)->port, ODR_CONTEXT, 1, 0, "port") &&
1085  odr_sequence_end(o);
1086 }
1087 
1088 int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt, const char *name)
1089 {
1090  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1091  return odr_missing(o, opt, name) && odr_ok (o);
1092  return
1094  &(*p)->pSel, ODR_CONTEXT, 0, 0, "pSel") &&
1096  &(*p)->sSel, ODR_CONTEXT, 1, 1, "sSel") &&
1098  &(*p)->tSel, ODR_CONTEXT, 2, 1, "tSel") &&
1100  &(*p)->nSap, ODR_CONTEXT, 3, 0, "nSap") &&
1101  odr_sequence_end(o);
1102 }
1103 
1105 {
1106  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1107  return odr_missing(o, opt, name) && odr_ok (o);
1108  return
1110  &(*p)->type, ODR_CONTEXT, 0, 0, "type") &&
1112  &(*p)->address, ODR_CONTEXT, 1, 0, "address") &&
1113  odr_sequence_end(o);
1114 }
1115 
1116 int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt, const char *name)
1117 {
1118  static Odr_arm arm[] = {
1120  (Odr_fun) z_NetworkAddressIA, "internetAddress"},
1122  (Odr_fun) z_NetworkAddressOPA, "osiPresentationAddress"},
1124  (Odr_fun) z_NetworkAddressOther, "other"},
1125  {-1, -1, -1, -1, (Odr_fun) 0, 0}
1126  };
1127  if (!odr_initmember(o, p, sizeof(**p)))
1128  return odr_missing(o, opt, name);
1129  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1130  return 1;
1131  if (o->direction == ODR_DECODE)
1132  *p = 0;
1133  return odr_missing(o, opt, name);
1134 }
1135 
1136 int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt, const char *name)
1137 {
1138  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1139  return odr_missing(o, opt, name) && odr_ok (o);
1140  return
1142  (odr_sequence_of(o, (Odr_fun) z_QueryTypeDetails, &(*p)->queryTypesSupported,
1143  &(*p)->num_queryTypesSupported, "queryTypesSupported") || odr_ok(o)) &&
1145  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->diagnosticsSets,
1146  &(*p)->num_diagnosticsSets, "diagnosticsSets") || odr_ok(o)) &&
1148  (odr_sequence_of(o, (Odr_fun) z_AttributeSetId, &(*p)->attributeSetIds,
1149  &(*p)->num_attributeSetIds, "attributeSetIds") || odr_ok(o)) &&
1151  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->schemas,
1152  &(*p)->num_schemas, "schemas") || odr_ok(o)) &&
1154  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->recordSyntaxes,
1155  &(*p)->num_recordSyntaxes, "recordSyntaxes") || odr_ok(o)) &&
1157  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->resourceChallenges,
1158  &(*p)->num_resourceChallenges, "resourceChallenges") || odr_ok(o)) &&
1160  &(*p)->restrictedAccess, ODR_CONTEXT, 6, 1, "restrictedAccess") &&
1162  &(*p)->costInfo, ODR_CONTEXT, 8, 1, "costInfo") &&
1164  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->variantSets,
1165  &(*p)->num_variantSets, "variantSets") || odr_ok(o)) &&
1166  odr_implicit_settag(o, ODR_CONTEXT, 10) &&
1167  (odr_sequence_of(o, (Odr_fun) z_ElementSetName, &(*p)->elementSetNames,
1168  &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) &&
1169  odr_implicit_settag(o, ODR_CONTEXT, 11) &&
1170  odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->unitSystems,
1171  &(*p)->num_unitSystems, "unitSystems") &&
1172  odr_sequence_end(o);
1173 }
1174 
1175 int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt, const char *name)
1176 {
1177  static Odr_arm arm[] = {
1179  (Odr_fun) z_PrivateCapabilities, "zprivate"},
1181  (Odr_fun) z_RpnCapabilities, "rpn"},
1183  (Odr_fun) z_Iso8777Capabilities, "iso8777"},
1185  (Odr_fun) z_HumanString, "z39_58"},
1187  (Odr_fun) z_RpnCapabilities, "erpn"},
1189  (Odr_fun) z_HumanString, "rankedList"},
1190  {-1, -1, -1, -1, (Odr_fun) 0, 0}
1191  };
1192  if (!odr_initmember(o, p, sizeof(**p)))
1193  return odr_missing(o, opt, name);
1194  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1195  return 1;
1196  if (o->direction == ODR_DECODE)
1197  *p = 0;
1198  return odr_missing(o, opt, name);
1199 }
1200 
1202 {
1203  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1204  return odr_missing(o, opt, name) && odr_ok (o);
1205  return
1207  &(*p)->roperator, ODR_CONTEXT, 0, 0, "roperator") &&
1209  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1210  odr_sequence_end(o);
1211 }
1212 
1214 {
1215  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1216  return odr_missing(o, opt, name) && odr_ok (o);
1217  return
1219  (odr_sequence_of(o, (Odr_fun) z_PrivateCapOperator, &(*p)->operators,
1220  &(*p)->num_operators, "operators") || odr_ok(o)) &&
1222  (odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys,
1223  &(*p)->num_searchKeys, "searchKeys") || odr_ok(o)) &&
1225  (odr_sequence_of(o, (Odr_fun) z_HumanString, &(*p)->description,
1226  &(*p)->num_description, "description") || odr_ok(o)) &&
1227  odr_sequence_end(o);
1228 }
1229 
1230 int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt, const char *name)
1231 {
1232  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1233  return odr_missing(o, opt, name) && odr_ok (o);
1234  return
1236  (odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->operators,
1237  &(*p)->num_operators, "operators") || odr_ok(o)) &&
1239  &(*p)->resultSetAsOperandSupported, ODR_CONTEXT, 1, 0, "resultSetAsOperandSupported") &&
1241  &(*p)->restrictionOperandSupported, ODR_CONTEXT, 2, 0, "restrictionOperandSupported") &&
1243  &(*p)->proximity, ODR_CONTEXT, 3, 1, "proximity") &&
1244  odr_sequence_end(o);
1245 }
1246 
1248 {
1249  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1250  return odr_missing(o, opt, name) && odr_ok (o);
1251  return
1253  odr_sequence_of(o, (Odr_fun) z_SearchKey, &(*p)->searchKeys,
1254  &(*p)->num_searchKeys, "searchKeys") &&
1256  &(*p)->restrictions, ODR_CONTEXT, 1, 1, "restrictions") &&
1257  odr_sequence_end(o);
1258 }
1259 
1261 {
1262  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1263  return odr_missing(o, opt, name) && odr_ok (o);
1264  return
1266  &(*p)->unit, ODR_CONTEXT, 0, 0, "unit") &&
1268  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1269  odr_sequence_end(o);
1270 }
1271 
1272 int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt, const char *name)
1273 {
1274  static Odr_arm arm[] = {
1276  (Odr_fun) odr_integer, "known"},
1278  (Odr_fun) z_ProxSupportPrivate, "zprivate"},
1279  {-1, -1, -1, -1, (Odr_fun) 0, 0}
1280  };
1281  if (!odr_initmember(o, p, sizeof(**p)))
1282  return odr_missing(o, opt, name);
1283  if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
1284  return 1;
1285  if (o->direction == ODR_DECODE)
1286  *p = 0;
1287  return odr_missing(o, opt, name);
1288 }
1289 
1290 int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt, const char *name)
1291 {
1292  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1293  return odr_missing(o, opt, name) && odr_ok (o);
1294  return
1296  &(*p)->anySupport, ODR_CONTEXT, 0, 0, "anySupport") &&
1298  (odr_sequence_of(o, (Odr_fun) z_ProxSupportUnit, &(*p)->unitsSupported,
1299  &(*p)->num_unitsSupported, "unitsSupported") || odr_ok(o)) &&
1300  odr_sequence_end(o);
1301 }
1302 
1303 int z_SearchKey(ODR o, Z_SearchKey **p, int opt, const char *name)
1304 {
1305  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1306  return odr_missing(o, opt, name) && odr_ok (o);
1307  return
1309  &(*p)->searchKey, ODR_CONTEXT, 0, 0, "searchKey") &&
1311  &(*p)->description, ODR_CONTEXT, 1, 1, "description") &&
1312  odr_sequence_end(o);
1313 }
1314 
1316 {
1317  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1318  return odr_missing(o, opt, name) && odr_ok (o);
1319  return
1321  &(*p)->accessType, ODR_CONTEXT, 0, 0, "accessType") &&
1323  &(*p)->accessText, ODR_CONTEXT, 1, 1, "accessText") &&
1325  (odr_sequence_of(o, (Odr_fun) odr_oid, &(*p)->accessChallenges,
1326  &(*p)->num_accessChallenges, "accessChallenges") || odr_ok(o)) &&
1327  odr_sequence_end(o);
1328 }
1329 
1331 {
1332  if (!odr_initmember(o, p, sizeof(**p)))
1333  return odr_missing(o, opt, name);
1334  if (odr_sequence_of(o, (Odr_fun) z_AccessRestrictionsUnit, &(*p)->elements,
1335  &(*p)->num, name))
1336  return 1;
1337  if (o->direction == ODR_DECODE)
1338  *p = 0;
1339  return odr_missing(o, opt, name);
1340 }
1341 
1342 int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt, const char *name)
1343 {
1344  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1345  return odr_missing(o, opt, name) && odr_ok (o);
1346  return
1348  &(*p)->forWhat, ODR_CONTEXT, 1, 0, "forWhat") &&
1350  &(*p)->charge, ODR_CONTEXT, 2, 0, "charge") &&
1351  odr_sequence_end(o);
1352 }
1353 
1354 int z_Costs(ODR o, Z_Costs **p, int opt, const char *name)
1355 {
1356  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1357  return odr_missing(o, opt, name) && odr_ok (o);
1358  return
1360  &(*p)->connectCharge, ODR_CONTEXT, 0, 1, "connectCharge") &&
1362  &(*p)->connectTime, ODR_CONTEXT, 1, 1, "connectTime") &&
1364  &(*p)->displayCharge, ODR_CONTEXT, 2, 1, "displayCharge") &&
1366  &(*p)->searchCharge, ODR_CONTEXT, 3, 1, "searchCharge") &&
1368  &(*p)->subscriptCharge, ODR_CONTEXT, 4, 1, "subscriptCharge") &&
1370  (odr_sequence_of(o, (Odr_fun) z_CostsOtherCharge, &(*p)->otherCharges,
1371  &(*p)->num_otherCharges, "otherCharges") || odr_ok(o)) &&
1372  odr_sequence_end(o);
1373 }
1374 
1375 int z_Charge(ODR o, Z_Charge **p, int opt, const char *name)
1376 {
1377  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1378  return odr_missing(o, opt, name) && odr_ok (o);
1379  return
1381  &(*p)->cost, ODR_CONTEXT, 1, 0, "cost") &&
1383  &(*p)->perWhat, ODR_CONTEXT, 2, 1, "perWhat") &&
1385  &(*p)->text, ODR_CONTEXT, 3, 1, "text") &&
1386  odr_sequence_end(o);
1387 }
1388 
1389 int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt, const char *name)
1390 {
1391  if (!odr_initmember(o, p, sizeof(**p)))
1392  return odr_missing(o, opt, name);
1393  if (odr_sequence_of(o, (Odr_fun) z_DatabaseName, &(*p)->databases,
1394  &(*p)->num_databases, name))
1395  return 1;
1396  if (o->direction == ODR_DECODE)
1397  *p = 0;
1398  return odr_missing(o, opt, name);
1399 }
1400 
1402 {
1403  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1404  return odr_missing(o, opt, name) && odr_ok (o);
1405  return
1407  &(*p)->defaultAttributeSet, ODR_CONTEXT, 0, 0, "defaultAttributeSet") &&
1409  odr_sequence_of(o, (Odr_fun) z_AttributeCombination, &(*p)->legalCombinations,
1410  &(*p)->num_legalCombinations, "legalCombinations") &&
1411  odr_sequence_end(o);
1412 }
1413 
1415 {
1416  if (!odr_initmember(o, p, sizeof(**p)))
1417  return odr_missing(o, opt, name);
1418  if (odr_sequence_of(o, (Odr_fun) z_AttributeOccurrence, &(*p)->occurrences,
1419  &(*p)->num_occurrences, name))
1420  return 1;
1421  if (o->direction == ODR_DECODE)
1422  *p = 0;
1423  return odr_missing(o, opt, name);
1424 }
1425 
1427 {
1428  if (!odr_initmember(o, p, sizeof(**p)))
1429  return odr_missing(o, opt, name);
1430  if (odr_sequence_of(o, (Odr_fun) z_StringOrNumeric, &(*p)->attributes,
1431  &(*p)->num_attributes, name))
1432  return 1;
1433  if (o->direction == ODR_DECODE)
1434  *p = 0;
1435  return odr_missing(o, opt, name);
1436 }
1437 
1439 {
1440  static Odr_arm arm[] = {
1442  (Odr_fun) odr_null, "any_or_none"},
1444  (Odr_fun) z_AttributeValueList, "specific"},
1445  {-1, -1, -1, -1, (Odr_fun) 0, 0}
1446  };
1447  if (!odr_sequence_begin(o, p, sizeof(**p), name))
1448  return odr_missing(o, opt, name) && odr_ok (o);
1449  return
1451  &(*p)->attributeSet, ODR_CONTEXT, 0, 1, "attributeSet") &&
1453  &(*p)->attributeType, ODR_CONTEXT, 1, 0, "attributeType") &&
1455  &(*p)->mustBeSupplied, ODR_CONTEXT, 2, 1, "mustBeSupplied") &&
1456  odr_choice(o, arm, &(*p)->attributeValues, &(*p)->which, 0) &&
1457  odr_sequence_end(o);
1458 }
int z_QueryTypeDetails(ODR o, Z_QueryTypeDetails **p, int opt, const char *name)
Definition: z-exp.c:1175
int z_AttributeValueList(ODR o, Z_AttributeValueList **p, int opt, const char *name)
Definition: z-exp.c:1426
#define odr_ok(o)
Definition: odr.h:215
int z_ProxSupportPrivate(ODR o, Z_ProxSupportPrivate **p, int opt, const char *name)
Definition: z-exp.c:1260
#define Z_NetworkAddress_iA
Definition: z-exp.h:838
#define Z_IconObjectUnit_ianaType
Definition: z-exp.h:793
#define Z_QueryTypeDetails_erpn
Definition: z-exp.h:880
#define Z_Explain_attributeSetInfo
Definition: z-exp.h:280
#define Z_Explain_retrievalRecordDetails
Definition: z-exp.h:286
int z_StringOrNumeric(ODR o, Z_StringOrNumeric **p, int opt, const char *name)
Definition: z-core.c:1603
int z_ProcessingInformation(ODR o, Z_ProcessingInformation **p, int opt, const char *name)
Definition: z-exp.c:749
int z_AttributeSetId(ODR o, Z_AttributeSetId **p, int opt, const char *name)
Definition: z-core.c:1518
#define Z_SortKeyDetails_structured
Definition: z-exp.h:644
#define Z_ValueDescription_unit
Definition: z-exp.h:729
#define odr_explicit_tag(o, t, p, cl, tg, opt, name)
Definition: odr.h:195
#define Z_QueryTypeDetails_rpn
Definition: z-exp.h:877
int z_CommonInfo(ODR o, Z_CommonInfo **p, int opt, const char *name)
Definition: z-exp.c:978
#define Z_Explain_sortDetails
Definition: z-exp.h:287
#define Z_Explain_variants
Definition: z-exp.h:289
#define Z_ValueDescription_integer
Definition: z-exp.h:725
#define Z_QueryTypeDetails_iso8777
Definition: z-exp.h:878
#define Z_ValueDescription_oid
Definition: z-exp.h:728
int z_SchemaInfo(ODR o, Z_SchemaInfo **p, int opt, const char *name)
Definition: z-exp.c:206
#define Z_NetworkAddress_oPA
Definition: z-exp.h:839
int z_ElementDataType(ODR o, Z_ElementDataType **p, int opt, const char *name)
Definition: z-exp.c:284
int z_RetrievalRecordDetails(ODR o, Z_RetrievalRecordDetails **p, int opt, const char *name)
Definition: z-exp.c:629
#define Z_IconObjectUnit_z3950type
Definition: z-exp.h:794
#define Z_QueryTypeDetails_private
Definition: z-exp.h:876
int z_AttributeTypeDetails(ODR o, Z_AttributeTypeDetails **p, int opt, const char *name)
Definition: z-exp.c:522
int z_PrivateCapOperator(ODR o, Z_PrivateCapOperator **p, int opt, const char *name)
Definition: z-exp.c:1201
int z_ValueSetEnumerated(ODR o, Z_ValueSetEnumerated **p, int opt, const char *name)
Definition: z-exp.c:833
#define Z_ValueDescription_octets
Definition: z-exp.h:727
#define odr_implicit_tag(o, t, p, cl, tg, opt, name)
Definition: odr.h:192
int z_OtherInformation(ODR o, Z_OtherInformation **p, int opt, const char *name)
Definition: z-core.c:1545
int odr_sequence_begin(ODR o, void *p, int size, const char *name)
Definition: odr_seq.c:15
int z_UnitType(ODR o, Z_UnitType **p, int opt, const char *name)
Definition: z-exp.c:918
char * name
Definition: initopt.c:18
int z_TermListInfo(ODR o, Z_TermListInfo **p, int opt, const char *name)
Definition: z-exp.c:445
#define Z_Explain_extendedServicesInfo
Definition: z-exp.h:282
#define Z_ValueSet_range
Definition: z-exp.h:706
int z_IconObject(ODR o, Z_IconObject **p, int opt, const char *name)
Definition: z-exp.c:1041
int z_ExtendedServicesInfo(ODR o, Z_ExtendedServicesInfo **p, int opt, const char *name)
Definition: z-exp.c:460
int z_ContactInfo(ODR o, Z_ContactInfo **p, int opt, const char *name)
Definition: z-exp.c:1058
int z_DatabaseInfo(ODR o, Z_DatabaseInfo **p, int opt, const char *name)
Definition: z-exp.c:114
#define Z_ElementDataType_primitive
Definition: z-exp.h:410
int z_PathUnit(ODR o, Z_PathUnit **p, int opt, const char *name)
Definition: z-exp.c:248
#define Z_DatabaseInfo_approxNumber
Definition: z-exp.h:345
int z_NetworkAddressOPA(ODR o, Z_NetworkAddressOPA **p, int opt, const char *name)
Definition: z-exp.c:1088
#define Z_ElementDataType_structured
Definition: z-exp.h:411
int z_AttributeDetails(ODR o, Z_AttributeDetails **p, int opt, const char *name)
Definition: z-exp.c:492
int z_AccessRestrictionsUnit(ODR o, Z_AccessRestrictionsUnit **p, int opt, const char *name)
Definition: z-exp.c:1315
int z_AccessInfo(ODR o, Z_AccessInfo **p, int opt, const char *name)
Definition: z-exp.c:1136
int z_VariantClass(ODR o, Z_VariantClass **p, int opt, const char *name)
Definition: z-exp.c:788
int z_External(ODR o, Z_External **p, int opt, const char *name)
codec for BER EXTERNAL
Definition: prt-ext.c:95
int odr_constructed_begin(ODR o, void *xxp, int zclass, int tag, const char *name)
Definition: odr_cons.c:24
#define Z_Explain_processing
Definition: z-exp.h:288
#define Z_ProxSupportUnit_private
Definition: z-exp.h:924
int z_AttributeOccurrence(ODR o, Z_AttributeOccurrence **p, int opt, const char *name)
Definition: z-exp.c:1438
int z_SortKeyDetails(ODR o, Z_SortKeyDetails **p, int opt, const char *name)
Definition: z-exp.c:720
int z_CostsOtherCharge(ODR o, Z_CostsOtherCharge **p, int opt, const char *name)
Definition: z-exp.c:1342
int z_ProximitySupport(ODR o, Z_ProximitySupport **p, int opt, const char *name)
Definition: z-exp.c:1290
int z_AttributeSetInfo(ODR o, Z_AttributeSetInfo **p, int opt, const char *name)
Definition: z-exp.c:370
int z_Path(ODR o, Z_Path **p, int opt, const char *name)
Definition: z-exp.c:260
int odr_initmember(ODR o, void *p, int size)
Definition: odr_tag.c:44
#define Z_IconObjectUnit_otherType
Definition: z-exp.h:795
#define Z_Explain_categoryList
Definition: z-exp.h:291
#define Z_Explain_attributeDetails
Definition: z-exp.h:283
int direction
Definition: odr.h:126
int z_EScanInfo(ODR o, Z_EScanInfo **p, int opt, const char *name)
Definition: z-exp.c:569
int z_ValueDescription(ODR o, Z_ValueDescription **p, int opt, const char *name)
Definition: z-exp.c:875
int z_PerElementDetails(ODR o, Z_PerElementDetails **p, int opt, const char *name)
Definition: z-exp.c:650
int odr_integer(ODR o, Odr_int **p, int opt, const char *name)
Definition: odr_int.c:19
#define Z_AttributeOcc_any_or_none
Definition: z-exp.h:1007
int odr_bool(ODR o, Odr_bool **p, int opt, const char *name)
Definition: odr_bool.c:21
int z_NetworkAddress(ODR o, Z_NetworkAddress **p, int opt, const char *name)
Definition: z-exp.c:1116
int z_UnitInfo(ODR o, Z_UnitInfo **p, int opt, const char *name)
Definition: z-exp.c:901
int odr_choice(ODR o, Odr_arm arm[], void *p, void *whichp, const char *name)
Definition: odr_choice.c:17
#define Z_SortKeyDetails_numeric
Definition: z-exp.h:643
int z_DatabaseList(ODR o, Z_DatabaseList **p, int opt, const char *name)
Definition: z-exp.c:1389
int z_ElementSetName(ODR o, Z_ElementSetName **p, int opt, const char *name)
Definition: z-core.c:1508
int z_ExplainRecord(ODR o, Z_ExplainRecord **p, int opt, const char *name)
Definition: z-exp.c:12
#define Z_ProxSupportUnit_known
Definition: z-exp.h:923
int z_VariantSetInfo(ODR o, Z_VariantSetInfo **p, int opt, const char *name)
Definition: z-exp.c:771
int odr_sequence_of(ODR o, Odr_fun type, void *p, int *num, const char *name)
Definition: odr_seq.c:134
Odr_int Z_PrimitiveDataType
Definition: z-exp.h:46
int(* Odr_fun)(ODR, char **, int, const char *)
Definition: odr.h:135
int z_AttributeCombination(ODR o, Z_AttributeCombination **p, int opt, const char *name)
Definition: z-exp.c:1414
#define Z_Explain_recordSyntaxInfo
Definition: z-exp.h:279
int z_CategoryList(ODR o, Z_CategoryList **p, int opt, const char *name)
Definition: z-exp.c:949
int which
Definition: odr.h:142
Definition: odr.h:137
#define Z_Explain_targetInfo
Definition: z-exp.h:275
int z_AttributeSetDetails(ODR o, Z_AttributeSetDetails **p, int opt, const char *name)
Definition: z-exp.c:509
Definition: z-exp.h:395
int odr_null(ODR o, Odr_null **p, int opt, const char *name)
Definition: odr_null.c:19
int z_RpnCapabilities(ODR o, Z_RpnCapabilities **p, int opt, const char *name)
Definition: z-exp.c:1230
int odr_missing(ODR o, int opt, const char *name)
Definition: odr_util.c:82
int z_ElementSetDetails(ODR o, Z_ElementSetDetails **p, int opt, const char *name)
Definition: z-exp.c:606
#define Z_QueryTypeDetails_rankedList
Definition: z-exp.h:881
#define Z_Explain_termListInfo
Definition: z-exp.h:281
int z_TermListDetails(ODR o, Z_TermListDetails **p, int opt, const char *name)
Definition: z-exp.c:583
#define Z_Explain_units
Definition: z-exp.h:290
int z_HumanString(ODR o, Z_HumanString **p, int opt, const char *name)
Definition: z-exp.c:1007
int z_LanguageCode(ODR o, Z_LanguageCode **p, int opt, const char *name)
Definition: z-exp.c:1053
Definition: odr.h:124
#define Z_ValueDescription_valueAndUnit
Definition: z-exp.h:730
#define Z_Explain_tagSetInfo
Definition: z-exp.h:278
int z_AccessRestrictions(ODR o, Z_AccessRestrictions **p, int opt, const char *name)
Definition: z-exp.c:1330
int z_HumanStringUnit(ODR o, Z_HumanStringUnit **p, int opt, const char *name)
Definition: z-exp.c:995
int odr_sequence_end(ODR o)
Definition: odr_seq.c:61
int z_Unit(ODR o, Z_Unit **p, int opt, const char *name)
Definition: z-core.c:1582
ASN.1 Module RecordSyntax-explain.
#define Z_NetworkAddress_other
Definition: z-exp.h:840
int z_VariantType(ODR o, Z_VariantType **p, int opt, const char *name)
Definition: z-exp.c:805
int z_ElementInfoList(ODR o, Z_ElementInfoList **p, int opt, const char *name)
Definition: z-exp.c:272
int z_OmittedAttributeInterpretation(ODR o, Z_OmittedAttributeInterpretation **p, int opt, const char *name)
Definition: z-exp.c:537
int z_AttributeType(ODR o, Z_AttributeType **p, int opt, const char *name)
Definition: z-exp.c:389
#define Z_Explain_databaseInfo
Definition: z-exp.h:276
int z_NetworkAddressIA(ODR o, Z_NetworkAddressIA **p, int opt, const char *name)
Definition: z-exp.c:1076
int opt
Definition: initopt.c:19
#define Z_SortKeyDetails_character
Definition: z-exp.h:642
int z_RecordSyntaxInfo(ODR o, Z_RecordSyntaxInfo **p, int opt, const char *name)
Definition: z-exp.c:346
Z_InternationalString Z_LanguageCode
Definition: z-exp.h:172
int z_NetworkAddressOther(ODR o, Z_NetworkAddressOther **p, int opt, const char *name)
Definition: z-exp.c:1104
int z_CategoryInfo(ODR o, Z_CategoryInfo **p, int opt, const char *name)
Definition: z-exp.c:962
#define ODR_IMPLICIT
Definition: odr.h:59
int z_TagTypeMapping(ODR o, Z_TagTypeMapping **p, int opt, const char *name)
Definition: z-exp.c:192
int odr_oid(ODR o, Odr_oid **p, int opt, const char *name)
Definition: odr_oid.c:20
#define Z_Explain_elementSetDetails
Definition: z-exp.h:285
int z_Specification(ODR o, Z_Specification **p, int opt, const char *name)
Definition: z-core.c:778
int z_Iso8777Capabilities(ODR o, Z_Iso8777Capabilities **p, int opt, const char *name)
Definition: z-exp.c:1247
int z_TermListElement(ODR o, Z_TermListElement **p, int opt, const char *name)
Definition: z-exp.c:423
int z_Units(ODR o, Z_Units **p, int opt, const char *name)
Definition: z-exp.c:935
int z_RecordTag(ODR o, Z_RecordTag **p, int opt, const char *name)
Definition: z-exp.c:693
int z_InternationalString(ODR o, Z_InternationalString **p, int opt, const char *name)
Definition: z-core.c:1598
int z_ValueRange(ODR o, Z_ValueRange **p, int opt, const char *name)
Definition: z-exp.c:863
#define Z_DatabaseInfo_actualNumber
Definition: z-exp.h:344
int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name)
Definition: odr_oct.c:19
int z_AttributeValue(ODR o, Z_AttributeValue **p, int opt, const char *name)
Definition: z-exp.c:549
#define Z_Explain_termListDetails
Definition: z-exp.h:284
int z_TargetInfo(ODR o, Z_TargetInfo **p, int opt, const char *name)
Definition: z-exp.c:60
int z_Term(ODR o, Z_Term **p, int opt, const char *name)
Definition: z-core.c:329
int z_PrivateCapabilities(ODR o, Z_PrivateCapabilities **p, int opt, const char *name)
Definition: z-exp.c:1213
int z_SortDetails(ODR o, Z_SortDetails **p, int opt, const char *name)
Definition: z-exp.c:705
int odr_generalizedtime(ODR o, char **p, int opt, const char *name)
Definition: odr_use.c:63
int z_Charge(ODR o, Z_Charge **p, int opt, const char *name)
Definition: z-exp.c:1375
#define Z_AttributeOcc_specific
Definition: z-exp.h:1008
int z_PrimitiveDataType(ODR o, Z_PrimitiveDataType **p, int opt, const char *name)
Definition: z-exp.c:302
int z_IconObjectUnit(ODR o, Z_IconObjectUnit **p, int opt, const char *name)
Definition: z-exp.c:1019
#define Z_ValueSet_enumerated
Definition: z-exp.h:707
int odr_constructed_end(ODR o)
Definition: odr_cons.c:148
int z_ValueSet(ODR o, Z_ValueSet **p, int opt, const char *name)
Definition: z-exp.c:845
int z_AttributeCombinations(ODR o, Z_AttributeCombinations **p, int opt, const char *name)
Definition: z-exp.c:1401
#define ODR_CONTEXT
Definition: odr.h:67
int z_Costs(ODR o, Z_Costs **p, int opt, const char *name)
Definition: z-exp.c:1354
int z_IntUnit(ODR o, Z_IntUnit **p, int opt, const char *name)
Definition: z-core.c:1570
int z_ElementInfo(ODR o, Z_ElementInfo **p, int opt, const char *name)
Definition: z-exp.c:228
Definition: z-exp.h:750
int z_TagSetInfo(ODR o, Z_TagSetInfo **p, int opt, const char *name)
Definition: z-exp.c:327
int z_ProxSupportUnit(ODR o, Z_ProxSupportUnit **p, int opt, const char *name)
Definition: z-exp.c:1272
int z_VariantValue(ODR o, Z_VariantValue **p, int opt, const char *name)
Definition: z-exp.c:821
int z_TagSetElements(ODR o, Z_TagSetElements **p, int opt, const char *name)
Definition: z-exp.c:307
int z_AttributeDescription(ODR o, Z_AttributeDescription **p, int opt, const char *name)
Definition: z-exp.c:406
#define Z_ValueDescription_string
Definition: z-exp.h:726
#define Z_QueryTypeDetails_z39_58
Definition: z-exp.h:879
Definition: z-exp.h:962
#define ODR_DECODE
Definition: odr.h:95
int z_DatabaseName(ODR o, Z_DatabaseName **p, int opt, const char *name)
Definition: z-core.c:1513
int z_SearchKey(ODR o, Z_SearchKey **p, int opt, const char *name)
Definition: z-exp.c:1303
int odr_implicit_settag(ODR o, int zclass, int tag)
Definition: odr_tag.c:32
#define Z_Explain_schemaInfo
Definition: z-exp.h:277