Added utilities yaz_{set,get}_esn to set/get element set name from
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 14 Nov 2006 08:37:37 +0000 (08:37 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 14 Nov 2006 08:37:37 +0000 (08:37 +0000)
record composition.

NEWS
include/yaz/proto.h
src/Makefile.am
src/seshigh.c
win/makefile

diff --git a/NEWS b/NEWS
index 682dff9..0195045 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,6 @@
+Added utilities yaz_{set,get}_esn to set/get element set name from
+record composition.
+
 Removed the build of libyazthread.la. The libyaz.so is the threaded version
 of YAZ and has been so since YAZ 2.1.10.
 
 Removed the build of libyazthread.la. The libyaz.so is the threaded version
 of YAZ and has been so since YAZ 2.1.10.
 
index eea99f8..92b3da1 100644 (file)
@@ -24,7 +24,7 @@
  * (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: proto.h,v 1.24 2006-10-13 11:30:37 adam Exp $ */
+/* $Id: proto.h,v 1.25 2006-11-14 08:37:38 adam Exp $ */
 
 /**
  * \file proto.h
 
 /**
  * \file proto.h
@@ -182,6 +182,22 @@ Z_DiagRecs *zget_DiagRecs(ODR o, int error, const char *addinfo);
 YAZ_EXPORT
 Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo);
 
 YAZ_EXPORT
 Z_DiagRec *zget_DiagRec(ODR o, int error, const char *addinfo);
 
+/** \brief get element set name from RecordComposition
+    \param comp record composition
+    \returns element set name or NULL if no element set name was given
+*/
+YAZ_EXPORT
+const char *yaz_get_esn(Z_RecordComposition *comp);
+
+/** \brief set element set name in RecordComposition struct
+    \param comp_p record composition ptr
+    \param esn element set name string
+    \param nmem memory for result composition
+*/
+YAZ_EXPORT
+void yaz_set_esn(Z_RecordComposition **comp_p, const char *esn, NMEM nmem);
+
+
 YAZ_END_CDECL
 
 #include <yaz/prt-ext.h>
 YAZ_END_CDECL
 
 #include <yaz/prt-ext.h>
index cbf279d..3103a3b 100644 (file)
@@ -1,6 +1,6 @@
 ## This file is part of the YAZ toolkit.
 ## Copyright (C) 1994-2006, Index Data, All rights reserved.
 ## This file is part of the YAZ toolkit.
 ## Copyright (C) 1994-2006, Index Data, All rights reserved.
-## $Id: Makefile.am,v 1.43 2006-11-02 08:06:03 adam Exp $
+## $Id: Makefile.am,v 1.44 2006-11-14 08:37:38 adam Exp $
 
 YAZ_VERSION_INFO=2:1:0
 
 
 YAZ_VERSION_INFO=2:1:0
 
@@ -79,7 +79,7 @@ libyaz_la_SOURCES=version.c options.c log.c marcdisp.c oid.c wrbuf.c \
   xmlquery.c \
   mime.c mime.h \
   nfa.c nfaxml.c \
   xmlquery.c \
   mime.c mime.h \
   nfa.c nfaxml.c \
-  record_conv.c retrieval.c
+  record_conv.c retrieval.c elementset.c
 
 libyaz_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO)
 
 
 libyaz_la_LDFLAGS=-version-info $(YAZ_VERSION_INFO)
 
index de71c65..28830c2 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
  * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: seshigh.c,v 1.103 2006-10-27 11:22:09 adam Exp $
+ * $Id: seshigh.c,v 1.104 2006-11-14 08:37:38 adam Exp $
  */
 /**
  * \file seshigh.c
  */
 /**
  * \file seshigh.c
@@ -565,33 +565,6 @@ static int srw_bend_init(association *assoc, Z_SRW_diagnostic **d, int *num, Z_S
     return 1;
 }
 
     return 1;
 }
 
-static const char *get_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;
-}
-
-static void set_esn(Z_RecordComposition **comp_p, const char *esn, NMEM nmem)
-{
-    Z_RecordComposition *comp = nmem_malloc(nmem, sizeof(*comp));
-    
-    comp->which = Z_RecordComp_simple;
-    comp->u.simple = nmem_malloc(nmem, sizeof(*comp->u.simple));
-    comp->u.simple->which = Z_ElementSetNames_generic;
-    comp->u.simple->u.generic = nmem_strdup(nmem, esn);
-    *comp_p = comp;
-}
-
 static int retrieve_fetch(association *assoc, bend_fetch_rr *rr)
 {
 #if YAZ_HAVE_XML2
 static int retrieve_fetch(association *assoc, bend_fetch_rr *rr)
 {
 #if YAZ_HAVE_XML2
@@ -602,7 +575,7 @@ static int retrieve_fetch(association *assoc, bend_fetch_rr *rr)
     if (assoc->server)
     {
         int r;
     if (assoc->server)
     {
         int r;
-        const char *input_schema = get_esn(rr->comp);
+        const char *input_schema = yaz_get_esn(rr->comp);
         Odr_oid *input_syntax_raw = rr->request_format_raw;
         
         const char *backend_schema = 0;
         Odr_oid *input_syntax_raw = rr->request_format_raw;
         
         const char *backend_schema = 0;
@@ -647,7 +620,7 @@ static int retrieve_fetch(association *assoc, bend_fetch_rr *rr)
         }
         if (backend_schema)
         {
         }
         if (backend_schema)
         {
-            set_esn(&rr->comp, backend_schema, rr->stream->mem);
+            yaz_set_esn(&rr->comp, backend_schema, rr->stream->mem);
         }
         if (backend_syntax)
         {
         }
         if (backend_syntax)
         {
@@ -2361,7 +2334,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb)
                 assoc->init->implementation_name,
                 odr_prepend(assoc->encode, "GFS", resp->implementationName));
 
                 assoc->init->implementation_name,
                 odr_prepend(assoc->encode, "GFS", resp->implementationName));
 
-    version = odr_strdup(assoc->encode, "$Revision: 1.103 $");
+    version = odr_strdup(assoc->encode, "$Revision: 1.104 $");
     if (strlen(version) > 10)   /* check for unexpanded CVS strings */
         version[strlen(version)-2] = '\0';
     resp->implementationVersion = odr_prepend(assoc->encode,
     if (strlen(version) > 10)   /* check for unexpanded CVS strings */
         version[strlen(version)-2] = '\0';
     resp->implementationVersion = odr_prepend(assoc->encode,
index b012faa..f739568 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright (C) 1994-2006, Index Data ApS
 # All rights reserved.
 # Copyright (C) 1994-2006, Index Data ApS
 # All rights reserved.
-# $Id: makefile,v 1.119 2006-10-29 18:33:54 adam Exp $
+# $Id: makefile,v 1.120 2006-11-14 08:37:39 adam Exp $
 #
 # Programmed by
 #  Heikki Levanto & Adam Dickmeiss
 #
 # Programmed by
 #  Heikki Levanto & Adam Dickmeiss
@@ -416,7 +416,8 @@ MISC_OBJS= \
    $(OBJDIR)\cqltransform.obj \
    $(OBJDIR)\cqlutil.obj \
    $(OBJDIR)\cqlstrer.obj \
    $(OBJDIR)\cqltransform.obj \
    $(OBJDIR)\cqlutil.obj \
    $(OBJDIR)\cqlstrer.obj \
-   $(OBJDIR)\xcqlutil.obj
+   $(OBJDIR)\xcqlutil.obj \
+   $(OBJDIR)\elementset.obj
 
 Z3950_OBJS= \
    $(OBJDIR)\z-date.obj\
 
 Z3950_OBJS= \
    $(OBJDIR)\z-date.obj\