2 \brief ASN.1 Module UserInfoFormat-dateTime
4 Generated automatically by YAZ ASN.1 Compiler 0.4
7 #include <yaz/z-date.h>
9 int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name)
11 if (!odr_sequence_begin (o, p, sizeof(**p), name))
12 return odr_missing(o, opt, name) && odr_ok (o);
14 odr_explicit_tag (o, z_Date,
15 &(*p)->date, ODR_CONTEXT, 1, 1, "date") &&
16 odr_explicit_tag (o, z_Time,
17 &(*p)->time, ODR_CONTEXT, 2, 1, "time") &&
21 int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name)
23 if (!odr_sequence_begin (o, p, sizeof(**p), name))
24 return odr_missing(o, opt, name) && odr_ok (o);
26 odr_implicit_tag (o, odr_integer,
27 &(*p)->month, ODR_CONTEXT, 2, 0, "month") &&
28 odr_implicit_tag (o, odr_integer,
29 &(*p)->day, ODR_CONTEXT, 3, 1, "day") &&
33 int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name)
35 static Odr_arm arm[] = {
36 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateQuarter_first,
37 (Odr_fun) odr_null, "first"},
38 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateQuarter_second,
39 (Odr_fun) odr_null, "second"},
40 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateQuarter_third,
41 (Odr_fun) odr_null, "third"},
42 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateQuarter_fourth,
43 (Odr_fun) odr_null, "fourth"},
44 {-1, -1, -1, -1, (Odr_fun) 0, 0}
46 if (!odr_initmember(o, p, sizeof(**p)))
47 return odr_missing(o, opt, name);
48 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
50 if(o->direction == ODR_DECODE)
52 return odr_missing(o, opt, name);
55 int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name)
57 static Odr_arm arm[] = {
58 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_DateSeason_winter,
59 (Odr_fun) odr_null, "winter"},
60 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_DateSeason_spring,
61 (Odr_fun) odr_null, "spring"},
62 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_DateSeason_summer,
63 (Odr_fun) odr_null, "summer"},
64 {ODR_IMPLICIT, ODR_CONTEXT, 4, Z_DateSeason_autumn,
65 (Odr_fun) odr_null, "autumn"},
66 {-1, -1, -1, -1, (Odr_fun) 0, 0}
68 if (!odr_initmember(o, p, sizeof(**p)))
69 return odr_missing(o, opt, name);
70 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
72 if(o->direction == ODR_DECODE)
74 return odr_missing(o, opt, name);
77 int z_Era (ODR o, Z_Era **p, int opt, const char *name)
79 static Odr_arm arm[] = {
80 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Era_decade,
81 (Odr_fun) odr_null, "decade"},
82 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Era_century,
83 (Odr_fun) odr_null, "century"},
84 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Era_millennium,
85 (Odr_fun) odr_null, "millennium"},
86 {-1, -1, -1, -1, (Odr_fun) 0, 0}
88 if (!odr_initmember(o, p, sizeof(**p)))
89 return odr_missing(o, opt, name);
90 if (odr_choice(o, arm, &(*p)->u, &(*p)->which, name))
92 if(o->direction == ODR_DECODE)
94 return odr_missing(o, opt, name);
97 int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name)
99 if (!odr_sequence_begin (o, p, sizeof(**p), name))
100 return odr_missing(o, opt, name) && odr_ok (o);
102 odr_implicit_tag (o, odr_null,
103 &(*p)->circa, ODR_CONTEXT, 1, 1, "circa") &&
104 odr_explicit_tag (o, z_Era,
105 &(*p)->era, ODR_CONTEXT, 2, 1, "era") &&
106 odr_sequence_end (o);
109 int z_Date (ODR o, Z_Date **p, int opt, const char *name)
111 static Odr_arm arm[] = {
112 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Date_monthAndDay,
113 (Odr_fun) z_DateMonthAndDay, "monthAndDay"},
114 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Date_julianDay,
115 (Odr_fun) odr_integer, "julianDay"},
116 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Date_weekNumber,
117 (Odr_fun) odr_integer, "weekNumber"},
118 {ODR_EXPLICIT, ODR_CONTEXT, 4, Z_Date_quarter,
119 (Odr_fun) z_DateQuarter, "quarter"},
120 {ODR_EXPLICIT, ODR_CONTEXT, 5, Z_Date_season,
121 (Odr_fun) z_DateSeason, "season"},
122 {-1, -1, -1, -1, (Odr_fun) 0, 0}
124 if (!odr_sequence_begin (o, p, sizeof(**p), name))
125 return odr_missing(o, opt, name) && odr_ok (o);
127 odr_implicit_tag (o, odr_integer,
128 &(*p)->year, ODR_CONTEXT, 1, 0, "year") &&
129 ((odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 2, "partOfYear") &&
130 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
131 odr_constructed_end (o)) || odr_ok(o)) &&
132 odr_implicit_tag (o, z_DateFlags,
133 &(*p)->flags, ODR_CONTEXT, 3, 1, "flags") &&
134 odr_sequence_end (o);
137 int z_Time (ODR o, Z_Time **p, int opt, const char *name)
139 static Odr_arm arm[] = {
140 {ODR_IMPLICIT, ODR_CONTEXT, 1, Z_Time_local,
141 (Odr_fun) odr_null, "local"},
142 {ODR_IMPLICIT, ODR_CONTEXT, 2, Z_Time_utc,
143 (Odr_fun) odr_null, "utc"},
144 {ODR_IMPLICIT, ODR_CONTEXT, 3, Z_Time_utcOffset,
145 (Odr_fun) odr_integer, "utcOffset"},
146 {-1, -1, -1, -1, (Odr_fun) 0, 0}
148 if (!odr_sequence_begin (o, p, sizeof(**p), name))
149 return odr_missing(o, opt, name) && odr_ok (o);
151 odr_implicit_tag (o, odr_integer,
152 &(*p)->hour, ODR_CONTEXT, 1, 0, "hour") &&
153 odr_implicit_tag (o, odr_integer,
154 &(*p)->minute, ODR_CONTEXT, 2, 1, "minute") &&
155 odr_implicit_tag (o, odr_integer,
156 &(*p)->second, ODR_CONTEXT, 3, 1, "second") &&
157 odr_implicit_tag (o, z_IntUnit,
158 &(*p)->partOfSecond, ODR_CONTEXT, 4, 1, "partOfSecond") &&
159 odr_constructed_begin (o, &(*p)->u, ODR_CONTEXT, 5, "zone") &&
160 odr_choice (o, arm, &(*p)->u, &(*p)->which, 0) &&
161 odr_constructed_end (o) &&
162 odr_sequence_end (o);