*** empty log message ***
[yaz-moved-to-github.git] / util / oid.c
index 9f8a34f..285a146 100644 (file)
@@ -1,10 +1,31 @@
 /*
- * Copyright (c) 1995, Index Data
+ * Copyright (c) 1995-1997, Index Data
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: oid.c,v $
- * Revision 1.20  1997-07-28 12:34:43  adam
+ * Revision 1.26  1998-03-20 14:46:06  adam
+ * Added UNIverse Resource Reports.
+ *
+ * Revision 1.25  1998/02/10 15:32:03  adam
+ * Added new Object Identifiers.
+ *
+ * Revision 1.24  1997/09/29 13:19:00  adam
+ * Added function, oid_ent_to_oid, to replace the function
+ * oid_getoidbyent, which is not thread safe.
+ *
+ * Revision 1.23  1997/09/09 10:10:19  adam
+ * Another MSV5.0 port. Changed projects to include proper
+ * library/include paths.
+ * Server starts server in test-mode when no options are given.
+ *
+ * Revision 1.22  1997/08/29 13:34:58  quinn
+ * Added thesaurus oids
+ *
+ * Revision 1.21  1997/08/19 08:46:05  quinn
+ * Added Thesaurus OID
+ *
+ * Revision 1.20  1997/07/28 12:34:43  adam
  * Added new OID entries (RVDM).
  *
  * Revision 1.19  1997/05/02 08:39:41  quinn
  * entries to the list at initialization.
  */
 
+#include <stdlib.h>
 #include <oid.h>
 #include <yaz-util.h>
 
@@ -119,6 +141,7 @@ static oident oids[] =
     {PROTO_Z3950,   CLASS_ATTSET,  VAL_COLLECT1,  {3,7,-1},    "Collections-attset"},
     {PROTO_Z3950,   CLASS_ATTSET,  VAL_CIMI1,     {3,8,-1},    "CIMI-attset"},
     {PROTO_Z3950,   CLASS_ATTSET,  VAL_GEO,       {3,9,-1},    "Geo-attset"},
+    {PROTO_Z3950,   CLASS_ATTSET,  VAL_THESAURUS, {3,1000,81,1,-1},"Thesaurus-attset"},
 
     {PROTO_Z3950,   CLASS_DIAGSET, VAL_BIB1,      {4,1,-1},    "Bib-1"       },
     {PROTO_Z3950,   CLASS_DIAGSET, VAL_DIAG1,     {4,2,-1},    "Diag-1"      },
@@ -148,6 +171,21 @@ static oident oids[] =
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_GRS1,      {5,105,-1},  "GRS-1"       },
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_EXTENDED,  {5,106,-1},  "Extended"    },
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_FRAGMENT,  {5,107,-1},  "Fragment"    },
+
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_PDF,       {5,109,1,-1},"pdf"         },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_POSTSCRIPT,{5,109,2,-1},"postscript"  },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_HTML,      {5,109,3,-1},"html"        },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_TIFF,      {5,109,4,-1},"tiff"        },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_GIF,       {5,109,5,-1},"gif"         },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_JPEG,      {5,109,6,-1},"jpeg"        },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_PNG,       {5,109,7,-1},"png"         },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_MPEG,      {5,109,8,-1},"mpeg"        },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_SGML,      {5,109,9,-1},"sgml"        },
+
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_TIFFB,     {5,110,1,-1},"tiff-b"      },
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_WAV,       {5,110,2,-1},"wav"         },
+
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_SQLRS,     {5,111,-1},  "SQL-RS"      },
 #if 0
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_ID_SGML,   {5,1000,81,1,-1},"ID-SGML" },
 #endif
@@ -155,6 +193,7 @@ static oident oids[] =
 
     {PROTO_Z3950,   CLASS_RESFORM, VAL_RESOURCE1, {7,1,-1},    "Resource-1"  },
     {PROTO_Z3950,   CLASS_RESFORM, VAL_RESOURCE2, {7,2,-1},    "Resource-2"  },
+    {PROTO_Z3950,   CLASS_RESFORM, VAL_UNIVERSE_REPORT,  {7,1000,81,1,-1}, "UNIverse-Resource-Report"},
 
     {PROTO_Z3950,   CLASS_ACCFORM, VAL_PROMPT1,   {8,1,-1},    "Prompt-1"    },
     {PROTO_Z3950,   CLASS_ACCFORM, VAL_DES1,      {8,2,-1},    "Des-1"       },
@@ -169,6 +208,11 @@ static oident oids[] =
     {PROTO_Z3950,   CLASS_EXTSERV, VAL_EXPORTINV, {9,7,-1},    "exp. inv."   },
 
     {PROTO_Z3950,   CLASS_USERINFO,VAL_SEARCHRES1,{10,1,-1},  "searchResult-1"},
+    {PROTO_Z3950,   CLASS_USERINFO,VAL_CHARLANG,  {10,2,-1},  "CharSetandLanguageNegotiation"},
+    {PROTO_Z3950,   CLASS_USERINFO,VAL_USERINFO1, {10,3,-1},  "UserInfo-1"},
+    {PROTO_Z3950,   CLASS_USERINFO,VAL_MULTISRCH1,{10,4,-1},  "MultipleSearchTerms-1"},
+    {PROTO_Z3950,   CLASS_USERINFO,VAL_MULTISRCH2,{10,5,-1},  "MultipleSearchTerms-2"},
+    {PROTO_Z3950,   CLASS_USERINFO,VAL_DATETIME,  {10,6,-1},  "DateTime"},
 
     {PROTO_Z3950,   CLASS_ELEMSPEC,VAL_ESPEC1,    {11,1,-1},   "Espec-1"     },
 
@@ -179,6 +223,7 @@ static oident oids[] =
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_COLLECT1,  {13,3,-1},   "Collections-schema" },
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_GEO,       {13,4,-1},   "Geo-schema" },
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_CIMI1,     {13,5,-1},   "CIMI-schema" },
+    {PROTO_Z3950,   CLASS_SCHEMA,  VAL_UPDATEES,  {13,6,-1},   "Update ES" },
 
     {PROTO_Z3950,   CLASS_TAGSET,  VAL_SETM,      {14,1,-1},   "TagsetM"     },
     {PROTO_Z3950,   CLASS_TAGSET,  VAL_SETG,      {14,2,-1},   "TagsetG"     },
@@ -186,6 +231,8 @@ static oident oids[] =
     {PROTO_Z3950,   CLASS_TAGSET,  VAL_GILS,      {14,4,-1},   "GILS-tagset" },
     {PROTO_Z3950,   CLASS_TAGSET,  VAL_COLLECT1,  {14,5,-1},   "Collections-tagset"},
     {PROTO_Z3950,   CLASS_TAGSET,  VAL_CIMI1,     {14,6,-1},   "CIMI-tagset" },
+    {PROTO_Z3950,   CLASS_TAGSET,  VAL_THESAURUS, {14,1000,81,1,-1}, "thesaurus-tagset"},
+    
 
     /* SR definitions. Note that some of them aren't defined by the
         standard (yet), but are borrowed from Z3950v3 */
@@ -258,6 +305,7 @@ static oident oids[] =
     {PROTO_SR,      CLASS_SCHEMA,  VAL_COLLECT1,  {13,3,-1},   "Collections-schema" },
     {PROTO_SR,      CLASS_SCHEMA,  VAL_GEO,       {13,4,-1},   "Geo-schema" },
     {PROTO_SR,      CLASS_SCHEMA,  VAL_CIMI1,     {13,5,-1},   "CIMI-schema" },
+    {PROTO_Z3950,   CLASS_SCHEMA,  VAL_THESAURUS, {13,1000,81,1,-1}, "thesaurus-schema"},
 
     {PROTO_SR,      CLASS_TAGSET,  VAL_SETM,      {14,1,-1},   "TagsetM"     },
     {PROTO_SR,      CLASS_TAGSET,  VAL_SETG,      {14,2,-1},   "TagsetG"     },
@@ -344,13 +392,13 @@ struct oident *oid_getentbyoid(int *o)
     return 0;
 }
 
+
 /*
  * To query, fill out proto, class, and value of the ent parameter.
  */
-int *oid_getoidbyent(struct oident *ent)
+int *oid_ent_to_oid(struct oident *ent, int *ret)
 {
     struct oident *p;
-    static int ret[OID_SIZE];
 
     for (p = oids; *p->oidsuffix >= 0; p++)
         if (ent->proto == p->proto &&
@@ -383,6 +431,15 @@ int *oid_getoidbyent(struct oident *ent)
             }
     return 0;
 }
+/*
+ * To query, fill out proto, class, and value of the ent parameter.
+ */
+int *oid_getoidbyent(struct oident *ent)
+{
+    static int ret[OID_SIZE];
+
+    return oid_ent_to_oid (ent, ret);
+}
 
 oid_value oid_getvalbyname(const char *name)
 {