/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
* OF THIS SOFTWARE.
*
- * $Log: oid.h,v $
- * Revision 1.5 1995-09-12 11:31:46 quinn
- * Added some oids.
- *
- * Revision 1.4 1995/06/27 13:20:32 quinn
- * Added SUTRS support
- *
- * Revision 1.3 1995/05/29 08:11:33 quinn
- * Moved oid from odr/asn to util.
- *
- * Revision 1.2 1995/05/16 08:50:35 quinn
- * License, documentation, and memory fixes
- *
- * Revision 1.1 1995/03/30 09:39:41 quinn
- * Moved .h files to include directory
- *
- * Revision 1.1 1995/03/27 08:32:13 quinn
- * Added OID database
- *
- *
+ * $Id: oid.h,v 1.33 1999-05-27 13:02:20 adam Exp $
*/
#ifndef OID_H
#define OID_H
-#define OID_SIZE 100
+#include <yconfig.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define OID_SIZE 20
+
+typedef enum oid_proto
+{
+ PROTO_NOP=0,
+ PROTO_Z3950,
+ PROTO_SR,
+ PROTO_GENERAL,
+ PROTO_WAIS
+} oid_proto;
+
+typedef enum oid_class
+{
+ CLASS_NOP=0,
+ CLASS_APPCTX,
+ CLASS_ABSYN,
+ CLASS_ATTSET,
+ CLASS_TRANSYN,
+ CLASS_DIAGSET,
+ CLASS_RECSYN,
+ CLASS_RESFORM,
+ CLASS_ACCFORM,
+ CLASS_EXTSERV,
+ CLASS_USERINFO,
+ CLASS_ELEMSPEC,
+ CLASS_VARSET,
+ CLASS_SCHEMA,
+ CLASS_TAGSET,
+ CLASS_GENERAL
+} oid_class;
+
+typedef enum oid_value
+{
+ VAL_NOP=0,
+ VAL_APDU,
+ VAL_BER,
+ VAL_BASIC_CTX,
+ VAL_BIB1,
+ VAL_EXP1,
+ VAL_EXT1,
+ VAL_CCL1,
+ VAL_GILS,
+ VAL_WAIS,
+ VAL_STAS,
+ VAL_COLLECT1,
+ VAL_CIMI1,
+ VAL_GEO,
+ VAL_DIAG1,
+ VAL_ISO2709,
+ VAL_UNIMARC,
+ VAL_INTERMARC,
+ VAL_CCF,
+ VAL_USMARC,
+ VAL_UKMARC,
+ VAL_NORMARC,
+ VAL_LIBRISMARC,
+ VAL_DANMARC,
+ VAL_FINMARC,
+ VAL_MAB,
+ VAL_CANMARC,
+ VAL_SBN,
+ VAL_PICAMARC,
+ VAL_AUSMARC,
+ VAL_IBERMARC,
+ VAL_CATMARC,
+ VAL_MALMARC,
+ VAL_EXPLAIN,
+ VAL_SUTRS,
+ VAL_OPAC,
+ VAL_SUMMARY,
+ VAL_GRS0,
+ VAL_GRS1,
+ VAL_EXTENDED,
+ VAL_FRAGMENT,
+ VAL_RESOURCE1,
+ VAL_RESOURCE2,
+ VAL_PROMPT1,
+ VAL_DES1,
+ VAL_KRB1,
+ VAL_PRESSET,
+ VAL_PQUERY,
+ VAL_PCQUERY,
+ VAL_ITEMORDER,
+ VAL_DBUPDATE0,
+ VAL_DBUPDATE,
+ VAL_EXPORTSPEC,
+ VAL_EXPORTINV,
+ VAL_NONE,
+ VAL_SETM,
+ VAL_SETG,
+ VAL_VAR1,
+ VAL_ESPEC1,
+ VAL_SOIF,
+ VAL_SEARCHRES1,
+ VAL_THESAURUS,
+ VAL_CHARLANG,
+ VAL_USERINFO1,
+ VAL_MULTISRCH1,
+ VAL_MULTISRCH2,
+ VAL_DATETIME,
+ VAL_SQLRS,
+ VAL_PDF,
+ VAL_POSTSCRIPT,
+ VAL_HTML,
+ VAL_TIFF,
+ VAL_GIF,
+ VAL_JPEG,
+ VAL_PNG,
+ VAL_MPEG,
+ VAL_SGML,
+ VAL_TIFFB,
+ VAL_WAV,
+ VAL_UPDATEES,
+ VAL_TEXT_XML,
+ VAL_APPLICATION_XML,
+ VAL_UNIVERSE_REPORT,
+ VAL_PROXY,
+ VAL_COOKIE,
+/* add new types here... */
+
+/* VAL_DYNAMIC must have highest value */
+ VAL_DYNAMIC,
+ VAL_MAX = VAL_DYNAMIC+30
+} oid_value;
typedef struct oident
{
- enum oid_proto
- {
- PROTO_Z3950,
- PROTO_SR,
- PROTO_GENERAL
- } proto;
- enum oid_class
- {
- CLASS_APPCTX,
- CLASS_ABSYN,
- CLASS_ATTSET,
- CLASS_TRANSYN,
- CLASS_DIAGSET,
- CLASS_RECSYN,
- CLASS_RESFORM,
- CLASS_ACCFORM,
- CLASS_EXTSERV,
- CLASS_USERINFO,
- CLASS_ELEMSPEC,
- CLASS_VARSET,
- CLASS_DBSCHEMA,
- CLASS_TAGSET
- } class;
- enum oid_value
- {
- VAL_APDU,
- VAL_BER,
- VAL_BASIC_CTX,
- VAL_BIB1,
- VAL_EXP1,
- VAL_EXT1,
- VAL_CCL1,
- VAL_GILS,
- VAL_STAS,
- VAL_DIAG1,
- VAL_ISO2709,
- VAL_UNIMARC,
- VAL_INTERMARC,
- VAL_CCF,
- VAL_USMARC,
- VAL_UKMARC,
- VAL_NORMARC,
- VAL_LIBRISMARC,
- VAL_DANMARC,
- VAL_FINMARC,
- VAL_MAB,
- VAL_CANMARC,
- VAL_SBN,
- VAL_PICAMARC,
- VAL_AUSMARC,
- VAL_IBERMARC,
- VAL_EXPLAIN,
- VAL_SUTRS,
- VAL_OPAC,
- VAL_SUMMARY,
- VAL_GRS0,
- VAL_GRS1,
- VAL_EXTENDED,
- VAL_RESOURCE1,
- VAL_RESOURCE2,
- VAL_PROMPT1,
- VAL_DES1,
- VAL_KRB1,
- VAL_PRESSET,
- VAL_PQUERY,
- VAL_PCQUERY,
- VAL_ITEMORDER,
- VAL_DBUPDATE,
- VAL_EXPORTSPEC,
- VAL_EXPORTINV,
- VAL_NONE,
- VAL_SETM,
- VAL_SETG
- } value;
- int oidsuffix[20];
+ oid_proto proto;
+ oid_class oclass;
+ oid_value value;
+ int oidsuffix[OID_SIZE];
char *desc;
} oident;
-typedef enum oid_proto oid_proto;
-typedef enum oid_class oid_class;
-typedef enum oid_value oid_value;
+YAZ_EXPORT int *oid_getoidbyent(struct oident *ent);
+YAZ_EXPORT int *oid_ent_to_oid(struct oident *ent, int *dst);
+YAZ_EXPORT struct oident *oid_getentbyoid(int *o);
+YAZ_EXPORT void oid_oidcpy(int *t, int *s);
+YAZ_EXPORT void oid_oidcat(int *t, int *s);
+YAZ_EXPORT int oid_oidcmp(int *o1, int *o2);
+YAZ_EXPORT int oid_oidlen(int *o);
+YAZ_EXPORT oid_value oid_getvalbyname(const char *name);
+YAZ_EXPORT void oid_setprivateoids(oident *list);
+YAZ_EXPORT struct oident *oid_addent (int *oid, enum oid_proto proto,
+ enum oid_class oclass,
+ const char *desc, int value);
-int *oid_getoidbyent(struct oident *ent);
-struct oident *oid_getentbyoid(int *o);
-void oid_oidcpy(int *t, int *s);
-void oid_oidcat(int *t, int *s);
-int oid_oidcmp(int *o1, int *o2);
-int oid_oidlen(int *o);
-oid_value oid_getvalbyname(char *name);
+#ifdef __cplusplus
+}
+#endif
#endif