e38b8cc9664c7976b858733dc1bb7d0afc923c6f
[yaz-moved-to-github.git] / include / oid.h
1 /*
2  * Copyright (c) 1995, Index Data.
3  *
4  * Permission to use, copy, modify, distribute, and sell this software and
5  * its documentation, in whole or in part, for any purpose, is hereby granted,
6  * provided that:
7  *
8  * 1. This copyright and permission notice appear in all copies of the
9  * software and its documentation. Notices of copyright or attribution
10  * which appear at the beginning of any file must remain unchanged.
11  *
12  * 2. The name of Index Data or the individual authors may not be used to
13  * endorse or promote products derived from this software without specific
14  * prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
17  * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
18  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
19  * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
20  * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES
21  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR
22  * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24  * OF THIS SOFTWARE.
25  *
26  * $Log: oid.h,v $
27  * Revision 1.10  1995-11-13 09:27:31  quinn
28  * Fiddling with the variant stuff.
29  *
30  * Revision 1.9  1995/10/12  10:34:45  quinn
31  * Added Espec-1.
32  *
33  * Revision 1.8  1995/10/10  16:27:08  quinn
34  * *** empty log message ***
35  *
36  * Revision 1.7  1995/09/29  17:12:05  quinn
37  * Smallish
38  *
39  * Revision 1.6  1995/09/27  15:02:48  quinn
40  * Modified function heads & prototypes.
41  *
42  * Revision 1.5  1995/09/12  11:31:46  quinn
43  * Added some oids.
44  *
45  * Revision 1.4  1995/06/27  13:20:32  quinn
46  * Added SUTRS support
47  *
48  * Revision 1.3  1995/05/29  08:11:33  quinn
49  * Moved oid from odr/asn to util.
50  *
51  * Revision 1.2  1995/05/16  08:50:35  quinn
52  * License, documentation, and memory fixes
53  *
54  * Revision 1.1  1995/03/30  09:39:41  quinn
55  * Moved .h files to include directory
56  *
57  * Revision 1.1  1995/03/27  08:32:13  quinn
58  * Added OID database
59  *
60  *
61  */
62
63 #ifndef OID_H
64 #define OID_H
65
66 #include <yconfig.h>
67
68 #define OID_SIZE 100
69
70 typedef struct oident
71 {
72     enum oid_proto
73     {
74         PROTO_Z3950,
75         PROTO_SR,
76         PROTO_GENERAL
77     } proto;
78     enum oid_class
79     {
80         CLASS_APPCTX,
81         CLASS_ABSYN,
82         CLASS_ATTSET,
83         CLASS_TRANSYN,
84         CLASS_DIAGSET,
85         CLASS_RECSYN,
86         CLASS_RESFORM,
87         CLASS_ACCFORM,
88         CLASS_EXTSERV,
89         CLASS_USERINFO,
90         CLASS_ELEMSPEC,
91         CLASS_VARSET,
92         CLASS_SCHEMA,
93         CLASS_TAGSET
94     } class;
95     enum oid_value
96     {
97         VAL_APDU,
98         VAL_BER,
99         VAL_BASIC_CTX,
100         VAL_BIB1,
101         VAL_EXP1,
102         VAL_EXT1,
103         VAL_CCL1,
104         VAL_GILS,
105         VAL_WAIS,
106         VAL_STAS,
107         VAL_DIAG1,
108         VAL_ISO2709,
109         VAL_UNIMARC,
110         VAL_INTERMARC,
111         VAL_CCF,
112         VAL_USMARC,
113         VAL_UKMARC,
114         VAL_NORMARC,
115         VAL_LIBRISMARC,
116         VAL_DANMARC,
117         VAL_FINMARC,
118         VAL_MAB,
119         VAL_CANMARC,
120         VAL_SBN,
121         VAL_PICAMARC,
122         VAL_AUSMARC,
123         VAL_IBERMARC,
124         VAL_EXPLAIN,
125         VAL_SUTRS,
126         VAL_OPAC,
127         VAL_SUMMARY,
128         VAL_GRS0,
129         VAL_GRS1,
130         VAL_EXTENDED,
131         VAL_RESOURCE1,
132         VAL_RESOURCE2,
133         VAL_PROMPT1,
134         VAL_DES1,
135         VAL_KRB1,
136         VAL_PRESSET,
137         VAL_PQUERY,
138         VAL_PCQUERY,
139         VAL_ITEMORDER,
140         VAL_DBUPDATE,
141         VAL_EXPORTSPEC,
142         VAL_EXPORTINV,
143         VAL_NONE,
144         VAL_SETM,
145         VAL_SETG,
146         VAL_VAR1,
147         VAL_ESPEC1
148     } value;
149     int oidsuffix[20];
150     char *desc;
151 } oident;
152
153 typedef enum oid_proto oid_proto;
154 typedef enum oid_class oid_class;
155 typedef enum oid_value oid_value;
156
157 int *oid_getoidbyent(struct oident *ent);
158 struct oident *oid_getentbyoid(int *o);
159 void oid_oidcpy(int *t, int *s);
160 void oid_oidcat(int *t, int *s);
161 int oid_oidcmp(int *o1, int *o2);
162 int oid_oidlen(int *o);
163 oid_value oid_getvalbyname(char *name);
164
165 #endif