1 /** \file z-grs.h
2     \brief ASN.1 Module RecordSyntax-generic
3 
4     Generated automatically by YAZ ASN.1 Compiler 0.4
5 */
6 
7 #ifndef z_grs_H
8 #define z_grs_H
9 
10 #include <yaz/odr.h>
11 #include <yaz/z-core.h>
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 typedef struct Z_GenericRecord Z_GenericRecord;
17 YAZ_EXPORT int z_GenericRecord(ODR o, Z_GenericRecord **p, int opt, const char *name);
18 
19 typedef struct Z_TaggedElement Z_TaggedElement;
20 YAZ_EXPORT int z_TaggedElement(ODR o, Z_TaggedElement **p, int opt, const char *name);
21 
22 typedef struct Z_ElementData Z_ElementData;
23 YAZ_EXPORT int z_ElementData(ODR o, Z_ElementData **p, int opt, const char *name);
24 
25 typedef struct Z_ElementMetaData Z_ElementMetaData;
26 YAZ_EXPORT int z_ElementMetaData(ODR o, Z_ElementMetaData **p, int opt, const char *name);
27 
28 typedef struct Z_TagPath_s Z_TagPath_s;
29 YAZ_EXPORT int z_TagPath_s(ODR o, Z_TagPath_s **p, int opt, const char *name);
30 
31 typedef struct Z_TagPath Z_TagPath;
32 YAZ_EXPORT int z_TagPath(ODR o, Z_TagPath **p, int opt, const char *name);
33 
34 typedef struct Z_Order Z_Order;
35 YAZ_EXPORT int z_Order(ODR o, Z_Order **p, int opt, const char *name);
36 
37 typedef struct Z_Usage Z_Usage;
38 YAZ_EXPORT int z_Usage(ODR o, Z_Usage **p, int opt, const char *name);
39 
40 typedef struct Z_HitVector Z_HitVector;
41 YAZ_EXPORT int z_HitVector(ODR o, Z_HitVector **p, int opt, const char *name);
42 
43 typedef struct Z_Triple Z_Triple;
44 YAZ_EXPORT int z_Triple(ODR o, Z_Triple **p, int opt, const char *name);
45 
46 typedef struct Z_Variant Z_Variant;
47 YAZ_EXPORT int z_Variant(ODR o, Z_Variant **p, int opt, const char *name);
48 #ifdef __cplusplus
49 }
50 #endif
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54 struct Z_GenericRecord {
55 	int num_elements;
56 	Z_TaggedElement **elements;
57 };
58 
59 struct Z_TaggedElement {
60 	Odr_int *tagType; /* OPT */
61 	Z_StringOrNumeric *tagValue;
62 	Odr_int *tagOccurrence; /* OPT */
63 	Z_ElementData *content;
64 	Z_ElementMetaData *metaData; /* OPT */
65 	Z_Variant *appliedVariant; /* OPT */
66 };
67 
68 struct Z_ElementData {
69 	int which;
70 	union {
71 		Odr_oct *octets;
72 		Odr_int *numeric;
73 		char *date;
74 		Z_External *ext;
75 		Z_InternationalString *string;
76 		Odr_bool *trueOrFalse;
77 		Odr_oid *oid;
78 		Z_IntUnit *intUnit;
79 		Odr_null *elementNotThere;
80 		Odr_null *elementEmpty;
81 		Odr_null *noDataRequested;
82 		Z_External *diagnostic;
83 		Z_GenericRecord *subtree;
84 #define Z_ElementData_octets 1
85 #define Z_ElementData_numeric 2
86 #define Z_ElementData_date 3
87 #define Z_ElementData_ext 4
88 #define Z_ElementData_string 5
89 #define Z_ElementData_trueOrFalse 6
90 #define Z_ElementData_oid 7
91 #define Z_ElementData_intUnit 8
92 #define Z_ElementData_elementNotThere 9
93 #define Z_ElementData_elementEmpty 10
94 #define Z_ElementData_noDataRequested 11
95 #define Z_ElementData_diagnostic 12
96 #define Z_ElementData_subtree 13
97 	} u;
98 };
99 
100 struct Z_ElementMetaData {
101 	Z_Order *seriesOrder; /* OPT */
102 	Z_Usage *usageRight; /* OPT */
103 	int num_hits;
104 	Z_HitVector **hits; /* OPT */
105 	Z_InternationalString *displayName; /* OPT */
106 	int num_supportedVariants;
107 	Z_Variant **supportedVariants; /* OPT */
108 	Z_InternationalString *message; /* OPT */
109 	Odr_oct *elementDescriptor; /* OPT */
110 	Z_TagPath *surrogateFor; /* OPT */
111 	Z_TagPath *surrogateElement; /* OPT */
112 	Z_External *other; /* OPT */
113 };
114 
115 struct Z_TagPath_s {
116 	Odr_int *tagType; /* OPT */
117 	Z_StringOrNumeric *tagValue;
118 	Odr_int *tagOccurrence; /* OPT */
119 };
120 
121 struct Z_TagPath {
122 	int num;
123 	Z_TagPath_s **elements;
124 };
125 
126 struct Z_Order {
127 	Odr_bool *ascending;
128 	Odr_int *order;
129 };
130 
131 struct Z_Usage {
132 #define Z_Usage_redistributable 1
133 #define Z_Usage_restricted 2
134 #define Z_Usage_licensePointer 3
135 	Odr_int *type;
136 	Z_InternationalString *restriction; /* OPT */
137 };
138 
139 struct Z_HitVector {
140 	Z_Term *satisfier; /* OPT */
141 	Z_IntUnit *offsetIntoElement; /* OPT */
142 	Z_IntUnit *length; /* OPT */
143 	Odr_int *hitRank; /* OPT */
144 	Odr_oct *targetToken; /* OPT */
145 };
146 
147 struct Z_Triple {
148 	Odr_oid *variantSetId; /* OPT */
149 	Odr_int *zclass;
150 	Odr_int *type;
151 	int which;
152 	union {
153 		Odr_int *integer;
154 		Z_InternationalString *internationalString;
155 		Odr_oct *octetString;
156 		Odr_oid *objectIdentifier;
157 		Odr_bool *boolean;
158 		Odr_null *null;
159 		Z_Unit *unit;
160 		Z_IntUnit *valueAndUnit;
161 #define Z_Triple_integer 1
162 #define Z_Triple_internationalString 2
163 #define Z_Triple_octetString 3
164 #define Z_Triple_objectIdentifier 4
165 #define Z_Triple_boolean 5
166 #define Z_Triple_null 6
167 #define Z_Triple_unit 7
168 #define Z_Triple_valueAndUnit 8
169 	} value;
170 };
171 
172 struct Z_Variant {
173 	Odr_oid *globalVariantSetId; /* OPT */
174 	int num_triples;
175 	Z_Triple **triples;
176 };
177 
178 #ifdef __cplusplus
179 }
180 #endif
181 #endif
182