2 \brief ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3
4 Generated automatically by YAZ ASN.1 Compiler 0.4
7 #include <yaz/z-charneg.h>
9 int z_CharSetandLanguageNegotiation (ODR o, Z_CharSetandLanguageNegotiation **p, int opt, const char *name)
11 static Odr_arm arm[] = {
12 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_CharSetandLanguageNegotiation_proposal,
13 (Odr_fun) z_OriginProposal, "proposal"},
14 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_CharSetandLanguageNegotiation_response,
15 (Odr_fun) z_TargetResponse, "response"},
16 {-1, -1, -1, -1, (Odr_fun) 0, 0}
18 if (!odr_initmember(o, p, sizeof(**p)))
19 return odr_missing(o, opt, name);
20 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
22 if(o->direction == ODR_DECODE)
24 return odr_missing(o, opt, name);
27 int z_OriginProposal_0 (ODR o, Z_OriginProposal_0 **p, int opt, const char *name)
29 static Odr_arm arm[] = {
30 {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_OriginProposal_0_iso2022,
31 (Odr_fun) z_Iso2022, "iso2022"},
32 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_OriginProposal_0_iso10646,
33 (Odr_fun) z_Iso10646, "iso10646"},
34 {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_OriginProposal_0_private,
35 (Odr_fun) z_PrivateCharacterSet, "zprivate"},
36 {-1, -1, -1, -1, (Odr_fun) 0, 0}
38 if (!odr_initmember(o, p, sizeof(**p)))
39 return odr_missing(o, opt, name);
40 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
42 if(o->direction == ODR_DECODE)
44 return odr_missing(o, opt, name);
47 int z_OriginProposal (ODR o, Z_OriginProposal **p, int opt, const char *name)
49 if (!odr_sequence_begin (o, p, sizeof(**p), name))
50 return odr_missing(o, opt, name) && odr_ok (o);
52 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
53 (odr_sequence_of(o, (Odr_fun) z_OriginProposal_0, &(*p)->proposedCharSets,
54 &(*p)->num_proposedCharSets, "proposedCharSets") || odr_ok(o)) &&
55 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
56 (odr_sequence_of(o, (Odr_fun) z_LanguageCode, &(*p)->proposedlanguages,
57 &(*p)->num_proposedlanguages, "proposedlanguages") || odr_ok(o)) &&
58 odr_implicit_tag (o, odr_bool,
59 &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") &&
63 int z_TargetResponse (ODR o, Z_TargetResponse **p, int opt, const char *name)
65 static Odr_arm arm[] = {
66 {ODR_EXPLICIT, ODR_CONTEXT, 1, Z_TargetResponse_iso2022,
67 (Odr_fun) z_Iso2022, "iso2022"},
68 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_TargetResponse_iso10646,
69 (Odr_fun) z_Iso10646, "iso10646"},
70 {ODR_EXPLICIT, ODR_CONTEXT, 3, Z_TargetResponse_private,
71 (Odr_fun) z_PrivateCharacterSet, "zprivate"},
72 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_TargetResponse_none,
73 (Odr_fun) odr_null, "none"},
74 {-1, -1, -1, -1, (Odr_fun) 0, 0}
76 if (!odr_sequence_begin (o, p, sizeof(**p), name))
77 return odr_missing(o, opt, name) && odr_ok (o);
79 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "selectedCharSets") &&
80 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
81 odr_constructed_end (o)) || odr_ok(o)) &&
82 odr_implicit_tag (o, z_LanguageCode,
83 &(*p)->selectedLanguage, ODR_CONTEXT, 2, 1, "selectedLanguage") &&
84 odr_implicit_tag (o, odr_bool,
85 &(*p)->recordsInSelectedCharSets, ODR_CONTEXT, 3, 1, "recordsInSelectedCharSets") &&
89 int z_PrivateCharacterSetViaOid (ODR o, Z_PrivateCharacterSetViaOid **p, int opt, const char *name)
91 if (!odr_initmember (o, p, sizeof(**p)))
92 return odr_missing(o, opt, name);
93 if (odr_sequence_of (o, (Odr_fun) odr_oid, &(*p)->elements,
96 if(o->direction == ODR_DECODE)
98 return odr_missing(o, opt, name);
101 int z_PrivateCharacterSet (ODR o, Z_PrivateCharacterSet **p, int opt, const char *name)
103 static Odr_arm arm[] = {
104 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_PrivateCharacterSet_viaOid,
105 (Odr_fun) z_PrivateCharacterSetViaOid, "viaOid"},
106 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_PrivateCharacterSet_externallySpecified,
107 (Odr_fun) z_External, "externallySpecified"},
108 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_PrivateCharacterSet_previouslyAgreedUpon,
109 (Odr_fun) odr_null, "previouslyAgreedUpon"},
110 {-1, -1, -1, -1, (Odr_fun) 0, 0}
112 if (!odr_initmember(o, p, sizeof(**p)))
113 return odr_missing(o, opt, name);
114 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
116 if(o->direction == ODR_DECODE)
118 return odr_missing(o, opt, name);
121 int z_Iso2022OriginProposal (ODR o, Z_Iso2022OriginProposal **p, int opt, const char *name)
123 if (!odr_sequence_begin (o, p, sizeof(**p), name))
124 return odr_missing(o, opt, name) && odr_ok (o);
126 odr_explicit_tag (o, z_Environment,
127 &(*p)->proposedEnvironment, ODR_CONTEXT, 0, 1, "proposedEnvironment") &&
128 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
129 odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->proposedSets,
130 &(*p)->num_proposedSets, "proposedSets") &&
131 odr_implicit_settag (o, ODR_CONTEXT, 2) &&
132 odr_sequence_of(o, (Odr_fun) z_InitialSet, &(*p)->proposedInitialSets,
133 &(*p)->num_proposedInitialSets, "proposedInitialSets") &&
134 odr_implicit_tag (o, z_LeftAndRight,
135 &(*p)->proposedLeftAndRight, ODR_CONTEXT, 3, 0, "proposedLeftAndRight") &&
136 odr_sequence_end (o);
139 int z_Iso2022TargetResponse (ODR o, Z_Iso2022TargetResponse **p, int opt, const char *name)
141 if (!odr_sequence_begin (o, p, sizeof(**p), name))
142 return odr_missing(o, opt, name) && odr_ok (o);
144 odr_explicit_tag (o, z_Environment,
145 &(*p)->selectedEnvironment, ODR_CONTEXT, 0, 0, "selectedEnvironment") &&
146 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
147 odr_sequence_of(o, (Odr_fun) odr_integer, &(*p)->selectedSets,
148 &(*p)->num_selectedSets, "selectedSets") &&
149 odr_implicit_tag (o, z_InitialSet,
150 &(*p)->selectedinitialSet, ODR_CONTEXT, 2, 0, "selectedinitialSet") &&
151 odr_implicit_tag (o, z_LeftAndRight,
152 &(*p)->selectedLeftAndRight, ODR_CONTEXT, 3, 0, "selectedLeftAndRight") &&
153 odr_sequence_end (o);
156 int z_Iso2022 (ODR o, Z_Iso2022 **p, int opt, const char *name)
158 static Odr_arm arm[] = {
159 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Iso2022_originProposal,
160 (Odr_fun) z_Iso2022OriginProposal, "originProposal"},
161 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Iso2022_targetResponse,
162 (Odr_fun) z_Iso2022TargetResponse, "targetResponse"},
163 {-1, -1, -1, -1, (Odr_fun) 0, 0}
165 if (!odr_initmember(o, p, sizeof(**p)))
166 return odr_missing(o, opt, name);
167 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
169 if(o->direction == ODR_DECODE)
171 return odr_missing(o, opt, name);
174 int z_Environment (ODR o, Z_Environment **p, int opt, const char *name)
176 static Odr_arm arm[] = {
177 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Environment_sevenBit,
178 (Odr_fun) odr_null, "sevenBit"},
179 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Environment_eightBit,
180 (Odr_fun) odr_null, "eightBit"},
181 {-1, -1, -1, -1, (Odr_fun) 0, 0}
183 if (!odr_initmember(o, p, sizeof(**p)))
184 return odr_missing(o, opt, name);
185 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
187 if(o->direction == ODR_DECODE)
189 return odr_missing(o, opt, name);
192 int z_InitialSet (ODR o, Z_InitialSet **p, int opt, const char *name)
194 if (!odr_sequence_begin (o, p, sizeof(**p), name))
195 return odr_missing(o, opt, name) && odr_ok (o);
197 odr_implicit_tag (o, odr_integer,
198 &(*p)->g0, ODR_CONTEXT, 0, 1, "g0") &&
199 odr_implicit_tag (o, odr_integer,
200 &(*p)->g1, ODR_CONTEXT, 1, 1, "g1") &&
201 odr_implicit_tag (o, odr_integer,
202 &(*p)->g2, ODR_CONTEXT, 2, 1, "g2") &&
203 odr_implicit_tag (o, odr_integer,
204 &(*p)->g3, ODR_CONTEXT, 3, 1, "g3") &&
205 odr_implicit_tag (o, odr_integer,
206 &(*p)->c0, ODR_CONTEXT, 4, 0, "c0") &&
207 odr_implicit_tag (o, odr_integer,
208 &(*p)->c1, ODR_CONTEXT, 5, 1, "c1") &&
209 odr_sequence_end (o);
212 int z_LeftAndRight (ODR o, Z_LeftAndRight **p, int opt, const char *name)
214 if (!odr_sequence_begin (o, p, sizeof(**p), name))
215 return odr_missing(o, opt, name) && odr_ok (o);
217 odr_implicit_tag (o, odr_integer,
218 &(*p)->gLeft, ODR_CONTEXT, 3, 0, "gLeft") &&
219 odr_implicit_tag (o, odr_integer,
220 &(*p)->gRight, ODR_CONTEXT, 4, 1, "gRight") &&
221 odr_sequence_end (o);
224 int z_Iso10646 (ODR o, Z_Iso10646 **p, int opt, const char *name)
226 if (!odr_sequence_begin (o, p, sizeof(**p), name))
227 return odr_missing(o, opt, name) && odr_ok (o);
229 odr_implicit_tag (o, odr_oid,
230 &(*p)->collections, ODR_CONTEXT, 1, 1, "collections") &&
231 odr_implicit_tag (o, odr_oid,
232 &(*p)->encodingLevel, ODR_CONTEXT, 2, 0, "encodingLevel") &&
233 odr_sequence_end (o);