License, documentation, and memory fixes
[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.2  1995-05-16 08:50:35  quinn
28  * License, documentation, and memory fixes
29  *
30  * Revision 1.1  1995/03/30  09:39:41  quinn
31  * Moved .h files to include directory
32  *
33  * Revision 1.1  1995/03/27  08:32:13  quinn
34  * Added OID database
35  *
36  *
37  */
38
39 #ifndef OID_H
40 #define OID_H
41
42 #include <odr.h>
43
44 typedef struct oident
45 {
46     enum oid_proto
47     {
48         PROTO_Z3950,
49         PROTO_SR,
50         PROTO_GENERAL
51     } proto;
52     enum oid_class
53     {
54         CLASS_APPCTX,
55         CLASS_ABSYN,
56         CLASS_ATTSET,
57         CLASS_TRANSYN,
58         CLASS_DIAGSET,
59         CLASS_RECSYN,
60         CLASS_RESFORM,
61         CLASS_ACCFORM,
62         CLASS_EXTSERV,
63         CLASS_USERINFO,
64         CLASS_ELEMSPEC,
65         CLASS_VARSET,
66         CLASS_DBSCHEMA,
67         CLASS_TAGSET
68     } class;
69     enum oid_value
70     {
71         VAL_APDU,
72         VAL_BER,
73         VAL_BASIC_CTX,
74         VAL_BIB1,
75         VAL_EXP1,
76         VAL_EXT1,
77         VAL_CCL1,
78         VAL_GILS,
79         VAL_STAS,
80         VAL_DIAG1,
81         VAL_ISO2709,
82         VAL_UNIMARC,
83         VAL_INTERMARC,
84         VAL_CCF,
85         VAL_USMARC,
86         VAL_UKMARC,
87         VAL_NORMARC,
88         VAL_LIBRISMARC,
89         VAL_DANMARC,
90         VAL_FINMARC,
91         VAL_MAB,
92         VAL_CANMARC,
93         VAL_SBN,
94         VAL_PICAMARC,
95         VAL_AUSMARC,
96         VAL_IBERMARC,
97         VAL_EXPLAIN,
98         VAL_SUTRS,
99         VAL_OPAC,
100         VAL_SUMMARY,
101         VAL_GRS0,
102         VAL_GRS1,
103         VAL_EXTENDED,
104         VAL_RESOURCE1,
105         VAL_RESOURCE2,
106         VAL_PROMPT1,
107         VAL_DES1,
108         VAL_KRB1,
109         VAL_PRESSET,
110         VAL_PQUERY,
111         VAL_PCQUERY,
112         VAL_ITEMORDER,
113         VAL_DBUPDATE,
114         VAL_EXPORTSPEC,
115         VAL_EXPORTINV
116     } value;
117     Odr_oid oidsuffix[20];
118     char *desc;
119 } oident;
120
121 typedef enum oid_proto oid_proto;
122 typedef enum oid_class oid_class;
123 typedef enum oid_value oid_value;
124
125 Odr_oid *oid_getoidbyent(struct oident *ent);
126 struct oident *oid_getentbyoid(Odr_oid *o);
127
128 #endif