Use pthread_atfork to lock/unlock yaz_log system
[yaz-moved-to-github.git] / include / yaz / oid_db.h
index c216c33..4147990 100644 (file)
@@ -1,5 +1,5 @@
-/*
- * Copyright (c) 1995-2007, Index Data
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 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:
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -24,7 +24,6 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
  * (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_db.h,v 1.8 2007-05-08 08:22:35 adam Exp $ */
 
 /**
  * \file oid_db.h
 
 /**
  * \file oid_db.h
@@ -63,9 +62,9 @@ typedef enum oid_class
     CLASS_GENERAL,
     CLASS_NEGOT
 } oid_class;
     CLASS_GENERAL,
     CLASS_NEGOT
 } oid_class;
-    
 
 
-/** \brief returns standard OID database 
+
+/** \brief returns standard OID database
     \retval OID database handle
 */
 YAZ_EXPORT
     \retval OID database handle
 */
 YAZ_EXPORT
@@ -73,7 +72,7 @@ yaz_oid_db_t yaz_oid_std(void);
 
 /** \brief maps named OID string to raw OID by database lookup
     \param oid_db OID database
 
 /** \brief maps named OID string to raw OID by database lookup
     \param oid_db OID database
-    \param oclass class of string (enum oid_class) 
+    \param oclass class of string (enum oid_class)
     \param name OID name
     \returns raw OID or NULL if name is unknown (bad)
 
     \param name OID name
     \returns raw OID or NULL if name is unknown (bad)
 
@@ -88,7 +87,7 @@ const Odr_oid *yaz_string_to_oid(yaz_oid_db_t oid_db,
 
 /** \brief creates NMEM malloc'ed OID from string
     \param oid_db OID database
 
 /** \brief creates NMEM malloc'ed OID from string
     \param oid_db OID database
-    \param oclass class of string (enum oid_class) 
+    \param oclass class of string (enum oid_class)
     \param name OID name
     \param nmem memory for returned OID
     \returns raw OID or NULL if name is unknown (bad)
     \param name OID name
     \param nmem memory for returned OID
     \returns raw OID or NULL if name is unknown (bad)
@@ -99,7 +98,7 @@ Odr_oid *yaz_string_to_oid_nmem(yaz_oid_db_t oid_db,
 
 /** \brief creates ODR malloc'ed OID from string
     \param oid_db OID database
 
 /** \brief creates ODR malloc'ed OID from string
     \param oid_db OID database
-    \param oclass class of string (enum oid_class) 
+    \param oclass class of string (enum oid_class)
     \param name OID name
     \param odr memory for returned OID
     \returns raw OID or NULL if name is unknown (bad)
     \param name OID name
     \param odr memory for returned OID
     \returns raw OID or NULL if name is unknown (bad)
@@ -123,12 +122,23 @@ const char *yaz_oid_to_string(yaz_oid_db_t oid_db,
     \param oid raw OID
     \param oclass holds OID class if found (output parameter)
     \param buf string buffer for result (must be of size OID_STR_MAX)
     \param oid raw OID
     \param oclass holds OID class if found (output parameter)
     \param buf string buffer for result (must be of size OID_STR_MAX)
-    \returns OID string (named or dot notatition) 
+    \returns OID string (named or dot notatition)
 */
 YAZ_EXPORT
 const char *yaz_oid_to_string_buf(const Odr_oid *oid,
                                   oid_class *oclass, char *buf);
 
 */
 YAZ_EXPORT
 const char *yaz_oid_to_string_buf(const Odr_oid *oid,
                                   oid_class *oclass, char *buf);
 
+
+/** \brief maps named from standard database to dot notation
+    \param oclass class of string (enum oid_class)
+    \param name named OID
+    \param oid_buf buffer for result (must be of size OID_STR_MAX)
+    \returns OID string or NULL if name is not registered in database
+*/
+YAZ_EXPORT
+char *oid_name_to_dotstring(oid_class oclass, const char *name, char *oid_buf);
+
+
 /** \brief traverses OIDs in a database
     \param oid_db OID database
     \param func function to be called for each OID
 /** \brief traverses OIDs in a database
     \param oid_db OID database
     \param func function to be called for each OID
@@ -157,7 +167,7 @@ int yaz_oid_is_iso2709(const Odr_oid *oid);
     \retval -1 OID name+oclass already exists
 */
 YAZ_EXPORT
     \retval -1 OID name+oclass already exists
 */
 YAZ_EXPORT
-int yaz_oid_add(yaz_oid_db_t oid_db, int oclass, const char *name,
+int yaz_oid_add(yaz_oid_db_t oid_db, oid_class oclass, const char *name,
                 const Odr_oid *new_oid);
 
 
                 const Odr_oid *new_oid);
 
 
@@ -174,7 +184,7 @@ YAZ_EXPORT
 void yaz_oid_db_destroy(yaz_oid_db_t oid_db);
 
 struct yaz_oid_entry {
 void yaz_oid_db_destroy(yaz_oid_db_t oid_db);
 
 struct yaz_oid_entry {
-    int oclass;
+    enum oid_class oclass;
     const Odr_oid *oid;
     char *name;
 };
     const Odr_oid *oid;
     char *name;
 };
@@ -189,6 +199,7 @@ YAZ_END_CDECL
 /*
  * Local variables:
  * c-basic-offset: 4
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab