1 /** \file z-opac.c
2     \brief ASN.1 Module RecordSyntax-opac
3 
4     Generated automatically by YAZ ASN.1 Compiler 0.4
5 */
6 #if HAVE_CONFIG_H
7 #include <config.h>
8 #endif
9 
10 #include <yaz/z-opac.h>
11 
z_OPACRecord(ODR o,Z_OPACRecord ** p,int opt,const char * name)12 int z_OPACRecord(ODR o, Z_OPACRecord **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
17 		odr_implicit_tag(o, z_External,
18 			&(*p)->bibliographicRecord, ODR_CONTEXT, 1, 1, "bibliographicRecord") &&
19 		odr_implicit_settag(o, ODR_CONTEXT, 2) &&
20 		(odr_sequence_of(o, (Odr_fun) z_HoldingsRecord, &(*p)->holdingsData,
21 		  &(*p)->num_holdingsData, "holdingsData") || odr_ok(o)) &&
22 		odr_sequence_end(o);
23 }
24 
z_HoldingsRecord(ODR o,Z_HoldingsRecord ** p,int opt,const char * name)25 int z_HoldingsRecord(ODR o, Z_HoldingsRecord **p, int opt, const char *name)
26 {
27 	static Odr_arm arm[] = {
28 		{ODR_IMPLICIT, ODR_CONTEXT, 1, Z_HoldingsRecord_marcHoldingsRecord,
29 		(Odr_fun) z_External, "marcHoldingsRecord"},
30 		{ODR_IMPLICIT, ODR_CONTEXT, 2, Z_HoldingsRecord_holdingsAndCirc,
31 		(Odr_fun) z_HoldingsAndCircData, "holdingsAndCirc"},
32 		{-1, -1, -1, -1, (Odr_fun) 0, 0}
33 	};
34 	if (!odr_initmember(o, p, sizeof(**p)))
35 		return odr_missing(o, opt, name);
36 	if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
37 		return 1;
38 	if (o->direction == ODR_DECODE)
39 		*p = 0;
40 	return odr_missing(o, opt, name);
41 }
42 
z_HoldingsAndCircData(ODR o,Z_HoldingsAndCircData ** p,int opt,const char * name)43 int z_HoldingsAndCircData(ODR o, Z_HoldingsAndCircData **p, int opt, const char *name)
44 {
45 	if (!odr_sequence_begin(o, p, sizeof(**p), name))
46 		return odr_missing(o, opt, name) && odr_ok (o);
47 	return
48 		odr_implicit_tag(o, z_InternationalString,
49 			&(*p)->typeOfRecord, ODR_CONTEXT, 1, 1, "typeOfRecord") &&
50 		odr_implicit_tag(o, z_InternationalString,
51 			&(*p)->encodingLevel, ODR_CONTEXT, 2, 1, "encodingLevel") &&
52 		odr_implicit_tag(o, z_InternationalString,
53 			&(*p)->format, ODR_CONTEXT, 3, 1, "format") &&
54 		odr_implicit_tag(o, z_InternationalString,
55 			&(*p)->receiptAcqStatus, ODR_CONTEXT, 4, 1, "receiptAcqStatus") &&
56 		odr_implicit_tag(o, z_InternationalString,
57 			&(*p)->generalRetention, ODR_CONTEXT, 5, 1, "generalRetention") &&
58 		odr_implicit_tag(o, z_InternationalString,
59 			&(*p)->completeness, ODR_CONTEXT, 6, 1, "completeness") &&
60 		odr_implicit_tag(o, z_InternationalString,
61 			&(*p)->dateOfReport, ODR_CONTEXT, 7, 1, "dateOfReport") &&
62 		odr_implicit_tag(o, z_InternationalString,
63 			&(*p)->nucCode, ODR_CONTEXT, 8, 1, "nucCode") &&
64 		odr_implicit_tag(o, z_InternationalString,
65 			&(*p)->localLocation, ODR_CONTEXT, 9, 1, "localLocation") &&
66 		odr_implicit_tag(o, z_InternationalString,
67 			&(*p)->shelvingLocation, ODR_CONTEXT, 10, 1, "shelvingLocation") &&
68 		odr_implicit_tag(o, z_InternationalString,
69 			&(*p)->callNumber, ODR_CONTEXT, 11, 1, "callNumber") &&
70 		odr_implicit_tag(o, z_InternationalString,
71 			&(*p)->shelvingData, ODR_CONTEXT, 12, 1, "shelvingData") &&
72 		odr_implicit_tag(o, z_InternationalString,
73 			&(*p)->copyNumber, ODR_CONTEXT, 13, 1, "copyNumber") &&
74 		odr_implicit_tag(o, z_InternationalString,
75 			&(*p)->publicNote, ODR_CONTEXT, 14, 1, "publicNote") &&
76 		odr_implicit_tag(o, z_InternationalString,
77 			&(*p)->reproductionNote, ODR_CONTEXT, 15, 1, "reproductionNote") &&
78 		odr_implicit_tag(o, z_InternationalString,
79 			&(*p)->termsUseRepro, ODR_CONTEXT, 16, 1, "termsUseRepro") &&
80 		odr_implicit_tag(o, z_InternationalString,
81 			&(*p)->enumAndChron, ODR_CONTEXT, 17, 1, "enumAndChron") &&
82 		odr_implicit_settag(o, ODR_CONTEXT, 18) &&
83 		(odr_sequence_of(o, (Odr_fun) z_Volume, &(*p)->volumes,
84 		  &(*p)->num_volumes, "volumes") || odr_ok(o)) &&
85 		odr_implicit_settag(o, ODR_CONTEXT, 19) &&
86 		(odr_sequence_of(o, (Odr_fun) z_CircRecord, &(*p)->circulationData,
87 		  &(*p)->num_circulationData, "circulationData") || odr_ok(o)) &&
88 		odr_sequence_end(o);
89 }
90 
z_Volume(ODR o,Z_Volume ** p,int opt,const char * name)91 int z_Volume(ODR o, Z_Volume **p, int opt, const char *name)
92 {
93 	if (!odr_sequence_begin(o, p, sizeof(**p), name))
94 		return odr_missing(o, opt, name) && odr_ok (o);
95 	return
96 		odr_implicit_tag(o, z_InternationalString,
97 			&(*p)->enumeration, ODR_CONTEXT, 1, 1, "enumeration") &&
98 		odr_implicit_tag(o, z_InternationalString,
99 			&(*p)->chronology, ODR_CONTEXT, 2, 1, "chronology") &&
100 		odr_implicit_tag(o, z_InternationalString,
101 			&(*p)->enumAndChron, ODR_CONTEXT, 3, 1, "enumAndChron") &&
102 		odr_sequence_end(o);
103 }
104 
z_CircRecord(ODR o,Z_CircRecord ** p,int opt,const char * name)105 int z_CircRecord(ODR o, Z_CircRecord **p, int opt, const char *name)
106 {
107 	if (!odr_sequence_begin(o, p, sizeof(**p), name))
108 		return odr_missing(o, opt, name) && odr_ok (o);
109 	return
110 		odr_implicit_tag(o, odr_bool,
111 			&(*p)->availableNow, ODR_CONTEXT, 1, 0, "availableNow") &&
112 		odr_implicit_tag(o, z_InternationalString,
113 			&(*p)->availablityDate, ODR_CONTEXT, 2, 1, "availablityDate") &&
114 		odr_implicit_tag(o, z_InternationalString,
115 			&(*p)->availableThru, ODR_CONTEXT, 3, 1, "availableThru") &&
116 		odr_implicit_tag(o, z_InternationalString,
117 			&(*p)->restrictions, ODR_CONTEXT, 4, 1, "restrictions") &&
118 		odr_implicit_tag(o, z_InternationalString,
119 			&(*p)->itemId, ODR_CONTEXT, 5, 1, "itemId") &&
120 		odr_implicit_tag(o, odr_bool,
121 			&(*p)->renewable, ODR_CONTEXT, 6, 0, "renewable") &&
122 		odr_implicit_tag(o, odr_bool,
123 			&(*p)->onHold, ODR_CONTEXT, 7, 0, "onHold") &&
124 		odr_implicit_tag(o, z_InternationalString,
125 			&(*p)->enumAndChron, ODR_CONTEXT, 8, 1, "enumAndChron") &&
126 		odr_implicit_tag(o, z_InternationalString,
127 			&(*p)->midspine, ODR_CONTEXT, 9, 1, "midspine") &&
128 		odr_implicit_tag(o, z_InternationalString,
129 			&(*p)->temporaryLocation, ODR_CONTEXT, 10, 1, "temporaryLocation") &&
130 		odr_sequence_end(o);
131 }
132