X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2Foid.h;h=69d999fe4562da067108184fee7ce2106266adbf;hb=8d691989077a0addcbd840d769dce6700f3d9622;hp=c1d3f2c59c7b9a32a562566258601716dc8d52cf;hpb=d9ee01635f03f9095a66f71b73580560d48798e8;p=yaz-moved-to-github.git diff --git a/include/yaz/oid.h b/include/yaz/oid.h index c1d3f2c..69d999f 100644 --- a/include/yaz/oid.h +++ b/include/yaz/oid.h @@ -1,41 +1,48 @@ /* - * Copyright (c) 1995-1999, Index Data. + * Copyright (c) 1995-2007, Index Data + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation, in whole or in part, for any purpose, is hereby granted, - * provided that: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Index Data nor the names of its contributors + * may be used to endorse or promote products derived from this + * software without specific prior written permission. * - * 1. This copyright and permission notice appear in all copies of the - * software and its documentation. Notices of copyright or attribution - * which appear at the beginning of any file must remain unchanged. - * - * 2. The name of Index Data or the individual authors may not be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * IN NO EVENT SHALL INDEX DATA BE LIABLE FOR ANY SPECIAL, INCIDENTAL, - * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR - * NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - * - * $Id: oid.h,v 1.1 1999-11-30 13:47:11 adam Exp $ + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* $Id: oid.h,v 1.30 2007-01-03 08:42:14 adam Exp $ */ +/** + * \file oid.h + * \brief Header for OID database + * + * More or less protocol-transparent OID database. + * We could (and should?) extend this so that the user app can add new + * entries to the list at initialization. + */ #ifndef OID_H #define OID_H #include -#ifdef __cplusplus -extern "C" { -#endif +YAZ_BEGIN_CDECL #define OID_SIZE 20 +#define OID_STR_MAX 256 typedef enum oid_proto { @@ -43,7 +50,8 @@ typedef enum oid_proto PROTO_Z3950, PROTO_SR, PROTO_GENERAL, - PROTO_WAIS + PROTO_WAIS, + PROTO_HTTP } oid_proto; typedef enum oid_class @@ -63,7 +71,8 @@ typedef enum oid_class CLASS_VARSET, CLASS_SCHEMA, CLASS_TAGSET, - CLASS_GENERAL + CLASS_GENERAL, + CLASS_NEGOT } oid_class; typedef enum oid_value @@ -73,88 +82,156 @@ typedef enum oid_value VAL_BER, VAL_BASIC_CTX, VAL_BIB1, + VAL_EXP1, VAL_EXT1, VAL_CCL1, VAL_GILS, - VAL_WAIS, + VAL_WAIS, +/* 10 */ VAL_STAS, VAL_COLLECT1, VAL_CIMI1, VAL_GEO, VAL_DIAG1, + VAL_ISO2709, VAL_UNIMARC, VAL_INTERMARC, VAL_CCF, VAL_USMARC, +/* 20 */ VAL_UKMARC, VAL_NORMARC, VAL_LIBRISMARC, VAL_DANMARC, VAL_FINMARC, + VAL_MAB, VAL_CANMARC, VAL_SBN, VAL_PICAMARC, VAL_AUSMARC, +/* 30 */ VAL_IBERMARC, VAL_CATMARC, VAL_MALMARC, VAL_EXPLAIN, VAL_SUTRS, + VAL_OPAC, VAL_SUMMARY, VAL_GRS0, VAL_GRS1, VAL_EXTENDED, +/* 40 */ VAL_FRAGMENT, VAL_RESOURCE1, VAL_RESOURCE2, VAL_PROMPT1, VAL_DES1, + VAL_KRB1, VAL_PRESSET, VAL_PQUERY, VAL_PCQUERY, VAL_ITEMORDER, + +/* 50 */ VAL_DBUPDATE0, VAL_DBUPDATE, VAL_EXPORTSPEC, VAL_EXPORTINV, VAL_NONE, + VAL_SETM, VAL_SETG, VAL_VAR1, VAL_ESPEC1, VAL_SOIF, + +/* 60 */ VAL_SEARCHRES1, VAL_THESAURUS, VAL_CHARLANG, VAL_USERINFO1, VAL_MULTISRCH1, + VAL_MULTISRCH2, VAL_DATETIME, VAL_SQLRS, VAL_PDF, VAL_POSTSCRIPT, + +/* 70 */ VAL_HTML, VAL_TIFF, VAL_GIF, VAL_JPEG, VAL_PNG, + VAL_MPEG, VAL_SGML, VAL_TIFFB, VAL_WAV, VAL_UPDATEES, + +/* 80 */ VAL_TEXT_XML, VAL_APPLICATION_XML, VAL_UNIVERSE_REPORT, VAL_PROXY, VAL_COOKIE, + VAL_CLIENT_IP, -/* add new types here... */ + VAL_ISO_ILL_1, + VAL_ZBIG, + VAL_UTIL, + VAL_XD1, + +/* 90 */ + VAL_ZTHES, + VAL_FIN1, + VAL_DAN1, + VAL_DIAG_ES, + VAL_DIAG_GENERAL, + + VAL_JPMARC, + VAL_SWEMARC, + VAL_SIGLEMARC, + VAL_ISDSMARC, + VAL_RUSMARC, + +/* 100 */ + VAL_ADMINSERVICE, + VAL_HOLDINGS, + VAL_HUNMARC, + VAL_CHARNEG3, + VAL_LIB1, + + VAL_VIRT, + VAL_UCS2, + VAL_UCS4, + VAL_UTF16, + VAL_UTF8, +/* 110 */ + + VAL_IDXPATH, + VAL_BIB2, + VAL_ZEEREX, + VAL_CQL, + VAL_DBUPDATE1, + + VAL_OCLCUI, + VAL_ID_CHARSET, + VAL_EXTLITE, + VAL_NACSISCATP, + VAL_FINMARC2000, +/* 120 */ + + VAL_MARC21FIN, + VAL_CHARNEG4, + VAL_XMLES, /* VAL_DYNAMIC must have highest value */ VAL_DYNAMIC, @@ -180,11 +257,27 @@ 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); + enum oid_class oclass, + const char *desc, int value); -#ifdef __cplusplus -} -#endif +YAZ_EXPORT void oid_trav (void (*func)(struct oident *oidinfo, void *vp), + void *vp); + +YAZ_EXPORT void oid_init(void); +YAZ_EXPORT void oid_exit(void); +YAZ_EXPORT int *oid_name_to_oid(oid_class oclass, const char *name, int *oid); +YAZ_EXPORT char *oid_to_dotstring(const int *oid, char *oidbuf); +YAZ_EXPORT char *oid_name_to_dotstring(oid_class oclass, const char *name, + char *oidbuf); + +YAZ_END_CDECL #endif +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +