Initial commit
[yaz4j-moved-to-github.git] / dependencies / yaz_3.0.14 / src / z-date.c
1 /** \file z-date.c
2     \brief ASN.1 Module UserInfoFormat-dateTime
3
4     Generated automatically by YAZ ASN.1 Compiler 0.4
5 */
6
7 #include <yaz/z-date.h>
8
9 int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name)
10 {
11         if (!odr_sequence_begin (o, p, sizeof(**p), name))
12                 return odr_missing(o, opt, name) && odr_ok (o);
13         return
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") &&
18                 odr_sequence_end (o);
19 }
20
21 int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name)
22 {
23         if (!odr_sequence_begin (o, p, sizeof(**p), name))
24                 return odr_missing(o, opt, name) && odr_ok (o);
25         return
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") &&
30                 odr_sequence_end (o);
31 }
32
33 int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name)
34 {
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}
45         };
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))
49                 return 1;
50         if(o->direction == ODR_DECODE)
51                 *p = 0;
52         return odr_missing(o, opt, name);
53 }
54
55 int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name)
56 {
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}
67         };
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))
71                 return 1;
72         if(o->direction == ODR_DECODE)
73                 *p = 0;
74         return odr_missing(o, opt, name);
75 }
76
77 int z_Era (ODR o, Z_Era **p, int opt, const char *name)
78 {
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}
87         };
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))
91                 return 1;
92         if(o->direction == ODR_DECODE)
93                 *p = 0;
94         return odr_missing(o, opt, name);
95 }
96
97 int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name)
98 {
99         if (!odr_sequence_begin (o, p, sizeof(**p), name))
100                 return odr_missing(o, opt, name) && odr_ok (o);
101         return
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);
107 }
108
109 int z_Date (ODR o, Z_Date **p, int opt, const char *name)
110 {
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}
123         };
124         if (!odr_sequence_begin (o, p, sizeof(**p), name))
125                 return odr_missing(o, opt, name) && odr_ok (o);
126         return
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);
135 }
136
137 int z_Time (ODR o, Z_Time **p, int opt, const char *name)
138 {
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}
147         };
148         if (!odr_sequence_begin (o, p, sizeof(**p), name))
149                 return odr_missing(o, opt, name) && odr_ok (o);
150         return
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);
163 }