Changed ZOOM_query_ccl2rpn function so that it takes a CCL config
[yaz-moved-to-github.git] / zoom / zoomtst10.c
diff --git a/zoom/zoomtst10.c b/zoom/zoomtst10.c
new file mode 100644 (file)
index 0000000..73710be
--- /dev/null
@@ -0,0 +1,66 @@
+/* $Id: zoomtst10.c,v 1.1 2006-06-15 10:34:24 adam Exp $  */
+
+/** \file zoomtst10.c
+    \brief Synchronous single-target search using CCL conversion
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <yaz/xmalloc.h>
+#include <yaz/zoom.h>
+
+int main(int argc, char **argv)
+{
+    ZOOM_connection z;
+    ZOOM_resultset r;
+    ZOOM_query q = ZOOM_query_create();
+    int error;
+    const char *errmsg, *addinfo;
+    int ccl_error_code, ccl_error_pos;
+    const char *ccl_error_string;
+
+    if (argc != 3)
+    {
+        fprintf (stderr, "usage:\n%s target cclquery\n", *argv);
+        fprintf (stderr, " eg.  bagel.indexdata.dk/gils 'ti=computer'\n");
+        exit (1);
+    }
+
+    if (ZOOM_query_ccl2rpn(q, argv[2], 
+                           "term t=l,r s=al\n" "ti u=4 s=pw\n",
+                           &ccl_error_code, &ccl_error_string, &ccl_error_pos))
+    {
+        printf("CCL Error %d: %s\n", ccl_error_code, ccl_error_string);
+        if (ccl_error_pos >= 0)
+            printf("%s\n%*s^\n", argv[2], ccl_error_pos, "");
+        ZOOM_query_destroy(q);
+    }
+    else
+    {
+        z = ZOOM_connection_new (argv[1], 0);
+        
+        if ((error = ZOOM_connection_error(z, &errmsg, &addinfo)))
+        {
+            fprintf (stderr, "Error: %s (%d) %s\n", errmsg, error, addinfo);
+            exit (2);
+        }
+        
+        r = ZOOM_connection_search (z, q);
+        ZOOM_query_destroy(q);
+        if ((error = ZOOM_connection_error(z, &errmsg, &addinfo)))
+            fprintf (stderr, "Error: %s (%d) %s\n", errmsg, error, addinfo);
+        else
+            printf ("Result count: %ld\n", (long) ZOOM_resultset_size(r));
+        ZOOM_resultset_destroy (r);
+        ZOOM_connection_destroy (z);
+    }
+    exit (0);
+}
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+