source: trunk/gsdl/packages/yaz/z39.50/z-espec1.c@ 1343

Last change on this file since 1343 was 1343, checked in by johnmcp, 24 years ago

Added the YAZ toolkit source to the packages directory (for z39.50 stuff)

  • Property svn:keywords set to Author Date Id Revision
File size: 5.7 KB
Line 
1/* Generated automatically by the YAZ ASN.1 Compiler 0.3 */
2/* Module-C: ElementSpecificationFormat-eSpec-1 */
3
4#include <yaz/z-espec1.h>
5
6int z_Espec1 (ODR o, Z_Espec1 **p, int opt, const char *name)
7{
8 if (!odr_sequence_begin (o, p, sizeof(**p), name))
9 return opt && odr_ok (o);
10 return
11 odr_implicit_settag (o, ODR_CONTEXT, 1) &&
12 (odr_sequence_of(o, (Odr_fun) z_InternationalString, &(*p)->elementSetNames,
13 &(*p)->num_elementSetNames, "elementSetNames") || odr_ok(o)) &&
14 odr_implicit_tag (o, odr_oid,
15 &(*p)->defaultVariantSetId, ODR_CONTEXT, 2, 1, "defaultVariantSetId") &&
16 odr_implicit_tag (o, z_Variant,
17 &(*p)->defaultVariantRequest, ODR_CONTEXT, 3, 1, "defaultVariantRequest") &&
18 odr_implicit_tag (o, odr_integer,
19 &(*p)->defaultTagType, ODR_CONTEXT, 4, 1, "defaultTagType") &&
20 odr_implicit_settag (o, ODR_CONTEXT, 5) &&
21 (odr_sequence_of(o, (Odr_fun) z_ElementRequest, &(*p)->elements,
22 &(*p)->num_elements, "elements") || odr_ok(o)) &&
23 odr_sequence_end (o);
24}
25
26int z_ElementRequestCompositeElementPrimitives (ODR o, Z_ElementRequestCompositeElementPrimitives **p, int opt, const char *name)
27{
28 if (!odr_initmember (o, p, sizeof(**p)))
29 return opt && odr_ok(o);
30 if (odr_sequence_of (o, (Odr_fun) z_InternationalString, &(*p)->elements,
31 &(*p)->num, name))
32 return 1;
33 *p = 0;
34 return opt && odr_ok(o);
35}
36
37int z_ElementRequestCompositeElementSpecs (ODR o, Z_ElementRequestCompositeElementSpecs **p, int opt, const char *name)
38{
39 if (!odr_initmember (o, p, sizeof(**p)))
40 return opt && odr_ok(o);
41 if (odr_sequence_of (o, (Odr_fun) z_SimpleElement, &(*p)->elements,
42 &(*p)->num, name))
43 return 1;
44 *p = 0;
45 return opt && odr_ok(o);
46}
47
48int z_ElementRequestCompositeElement (ODR o, Z_ElementRequestCompositeElement **p, int opt, const char *name)
49{
50 static Odr_arm arm[] = {
51 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ElementRequestCompositeElement_primitives,
52 (Odr_fun) z_ElementRequestCompositeElementPrimitives, "primitives"},
53 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ElementRequestCompositeElement_specs,
54 (Odr_fun) z_ElementRequestCompositeElementSpecs, "specs"},
55 {-1, -1, -1, -1, (Odr_fun) 0, 0}
56 };
57 if (!odr_sequence_begin (o, p, sizeof(**p), name))
58 return opt && odr_ok (o);
59 return
60 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 1, "elementList") &&
61 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
62 odr_constructed_end (o) &&
63 odr_implicit_tag (o, z_ETagPath,
64 &(*p)->deliveryTag, ODR_CONTEXT, 2, 0, "deliveryTag") &&
65 odr_implicit_tag (o, z_Variant,
66 &(*p)->variantRequest, ODR_CONTEXT, 3, 1, "variantRequest") &&
67 odr_sequence_end (o);
68}
69
70int z_ElementRequest (ODR o, Z_ElementRequest **p, int opt, const char *name)
71{
72 static Odr_arm arm[] = {
73 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ERequest_simpleElement,
74 (Odr_fun) z_SimpleElement, "simpleElement"},
75 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_ERequest_compositeElement,
76 (Odr_fun) z_ElementRequestCompositeElement, "compositeElement"},
77 {-1, -1, -1, -1, (Odr_fun) 0, 0}
78 };
79 if (!odr_initmember(o, p, sizeof(**p)))
80 return opt && odr_ok(o);
81 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
82 return 1;
83 *p = 0;
84 return opt && odr_ok(o);
85}
86
87int z_SimpleElement (ODR o, Z_SimpleElement **p, int opt, const char *name)
88{
89 if (!odr_sequence_begin (o, p, sizeof(**p), name))
90 return opt && odr_ok (o);
91 return
92 odr_implicit_tag (o, z_ETagPath,
93 &(*p)->path, ODR_CONTEXT, 1, 0, "path") &&
94 odr_implicit_tag (o, z_Variant,
95 &(*p)->variantRequest, ODR_CONTEXT, 2, 1, "variantRequest") &&
96 odr_sequence_end (o);
97}
98
99int z_SpecificTag (ODR o, Z_SpecificTag **p, int opt, const char *name)
100{
101 if (!odr_sequence_begin (o, p, sizeof(**p), name))
102 return opt && odr_ok (o);
103 return
104 odr_implicit_tag (o, odr_integer,
105 &(*p)->tagType, ODR_CONTEXT, 1, 1, "tagType") &&
106 odr_explicit_tag (o, z_StringOrNumeric,
107 &(*p)->tagValue, ODR_CONTEXT, 2, 0, "tagValue") &&
108 odr_explicit_tag (o, z_Occurrences,
109 &(*p)->occurrences, ODR_CONTEXT, 3, 1, "occurrences") &&
110 odr_sequence_end (o);
111}
112
113int z_ETagUnit (ODR o, Z_ETagUnit **p, int opt, const char *name)
114{
115 static Odr_arm arm[] = {
116 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_ETagUnit_specificTag,
117 (Odr_fun) z_SpecificTag, "specificTag"},
118 {ODR_EXPLICIT, ODR_CONTEXT, 2, Z_ETagUnit_wildThing,
119 (Odr_fun) z_Occurrences, "wildThing"},
120 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_ETagUnit_wildPath,
121 (Odr_fun) odr_null, "wildPath"},
122 {-1, -1, -1, -1, (Odr_fun) 0, 0}
123 };
124 if (!odr_initmember(o, p, sizeof(**p)))
125 return opt && odr_ok(o);
126 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
127 return 1;
128 *p = 0;
129 return opt && odr_ok(o);
130}
131
132int z_ETagPath (ODR o, Z_ETagPath **p, int opt, const char *name)
133{
134 if (!odr_initmember (o, p, sizeof(**p)))
135 return opt && odr_ok(o);
136 if (odr_sequence_of (o, (Odr_fun) z_ETagUnit, &(*p)->tags,
137 &(*p)->num_tags, name))
138 return 1;
139 *p = 0;
140 return opt && odr_ok(o);
141}
142
143int z_OccurValues (ODR o, Z_OccurValues **p, int opt, const char *name)
144{
145 if (!odr_sequence_begin (o, p, sizeof(**p), name))
146 return opt && odr_ok (o);
147 return
148 odr_implicit_tag (o, odr_integer,
149 &(*p)->start, ODR_CONTEXT, 1, 0, "start") &&
150 odr_implicit_tag (o, odr_integer,
151 &(*p)->howMany, ODR_CONTEXT, 2, 1, "howMany") &&
152 odr_sequence_end (o);
153}
154
155int z_Occurrences (ODR o, Z_Occurrences **p, int opt, const char *name)
156{
157 static Odr_arm arm[] = {
158 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Occurrences_all,
159 (Odr_fun) odr_null, "all"},
160 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Occurrences_last,
161 (Odr_fun) odr_null, "last"},
162 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Occurrences_values,
163 (Odr_fun) z_OccurValues, "values"},
164 {-1, -1, -1, -1, (Odr_fun) 0, 0}
165 };
166 if (!odr_initmember(o, p, sizeof(**p)))
167 return opt && odr_ok(o);
168 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
169 return 1;
170 *p = 0;
171 return opt && odr_ok(o);
172}
Note: See TracBrowser for help on using the repository browser.