Year 2007.
[metaproxy-moved-to-github.git] / src / util.cpp
index df9984c..cf9a6a0 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: util.cpp,v 1.22 2006-10-03 07:57:40 marc Exp $
-   Copyright (c) 2005-2006, Index Data.
+/* $Id: util.cpp,v 1.25 2007-01-25 14:05:54 adam Exp $
+   Copyright (c) 2005-2007, Index Data.
 
    See the LICENSE file for details
  */
@@ -19,6 +19,24 @@ namespace mp = metaproxy_1;
 // Doxygen doesn't like mp::util, so we use this instead
 namespace mp_util = metaproxy_1::util;
 
+const char * 
+mp_util::record_composition_to_esn(Z_RecordComposition *comp)
+{
+    if (comp && comp->which == Z_RecordComp_complex)
+    {
+        if (comp->u.complex->generic 
+            && comp->u.complex->generic->elementSpec
+            && (comp->u.complex->generic->elementSpec->which == 
+                Z_ElementSpec_elementSetName))
+            return comp->u.complex->generic->elementSpec->u.elementSetName;
+    }
+    else if (comp && comp->which == Z_RecordComp_simple &&
+             comp->u.simple->which == Z_ElementSetNames_generic)
+        return comp->u.simple->u.generic;
+    return 0;
+}
+
+
 
 std::string mp_util::http_header_value(const Z_HTTP_Header* header, 
                                        const std::string name)
@@ -316,6 +334,14 @@ void mp_util::set_vhost_otherinfo(
     }
 }
 
+void mp_util::set_vhost_otherinfo(
+    Z_OtherInformation **otherInformation, ODR odr,
+    const std::string vhost, const int cat)
+{
+        yaz_oi_set_string_oidval(otherInformation, odr,
+                                 VAL_PROXY, cat, vhost.c_str());
+}
+
 void mp_util::split_zurl(std::string zurl, std::string &host,
                                    std::list<std::string> &db)
 {