reset error for retrieve. Remove sleep call
[idzebra-moved-to-github.git] / index / apitest.c
index 3047044..9bfe1af 100644 (file)
@@ -1,3 +1,9 @@
+/*
+ * Copyright (C) 1995-2000, Index Data
+ * All rights reserved.
+ *
+ * $Header: /home/cvsroot/idis/index/Attic/apitest.c,v 1.11 2002-04-04 14:14:13 adam Exp $
+ */
 
 #include <stdio.h>
 
@@ -100,11 +106,14 @@ int main (int argc, char **argv)
        various functions */
     ODR odr_input, odr_output;
     
-    /* zh is our Zebra Handle - describes the server as a whole */
+    /* zs is our Zebra Service - decribes whole server */
+    ZebraService zs;
+
+    /* zh is our Zebra Handle - describes database session */
     ZebraHandle zh;
     
     /* the database we specify in our example */
-    char *base = "Default";
+    const char *base = "Default";
     int argno;
 
     nmem_init ();
@@ -114,19 +123,20 @@ int main (int argc, char **argv)
     odr_input = odr_createmem (ODR_DECODE);    
     odr_output = odr_createmem (ODR_ENCODE);    
     
-   /* open Zebra */
-    zh = zebra_open ("zebra.cfg");
+    zs = zebra_start ("zebra.cfg");
+    if (!zs)
+    {
+       printf ("zebra_start failed; missing zebra.cfg?\n");
+       exit (1);
+    }
+    /* open Zebra */
+    zh = zebra_open (zs);
     if (!zh)
     {
-       printf ("Couldn't init zebra\n");
+       printf ("zebras_open failed\n");
        exit (1);
     }
-
-    /* This call controls the logging facility in YAZ/Zebra */
-#if 0
-    log_init(LOG_ALL, "", "out.log");
-#endif
-
+    zebra_select_databases (zh, 1, &base);
     /* Each argument to main will be a query */
     for (argno = 1; argno < argc; argno++)
     {
@@ -135,8 +145,8 @@ int main (int argc, char **argv)
        char setname[64];
        int errCode;
        int i;
-       const char *errString;
-       char *errAdd;
+        int hits;
+       char *errString;
        ZebraRetrievalRecord *records;
        int noOfRecordsToFetch;
 
@@ -170,28 +180,26 @@ int main (int argc, char **argv)
        sprintf (setname, "%d", argno);
 
        /* fire up the search */
-       zebra_search_rpn (zh, odr_input, odr_output, query, 1, &base, setname);
+       zebra_search_rpn (zh, odr_input, odr_output, query, setname, &hits);
        
        /* status ... */
-       errCode = zebra_errCode (zh);
-       errString = zebra_errString (zh);
-       errAdd = zebra_errAdd (zh);
+        zebra_result (zh, &errCode, &errString);
        
        /* error? */
        if (errCode)
        {
-           printf ("Zebra Search Error %d %s %s\n",
-                   errCode, errString, errAdd ? errAdd : "");
+           printf ("Zebra Search Error %d %s\n",
+                   errCode, errString);
            continue;
        }
        /* ok ... */
-       printf ("Zebra Search gave %d hits\n", zebra_hits (zh));
+       printf ("Zebra Search gave %d hits\n", hits);
        
        /* Deterimine number of records to fetch ... */
-       if (zebra_hits(zh) > 10)
+       if (hits > 10)
            noOfRecordsToFetch = 10;
        else
-           noOfRecordsToFetch = zebra_hits(zh);
+           noOfRecordsToFetch = hits;
 
        /* reset our memory - we've finished dealing with search */
        odr_reset (odr_input);
@@ -208,15 +216,14 @@ int main (int argc, char **argv)
                                noOfRecordsToFetch, records);
 
        /* status ... */
-       errCode = zebra_errCode (zh);
-       errString = zebra_errString (zh);
-       errAdd = zebra_errAdd (zh);
-       
+
+        zebra_result (zh, &errCode, &errString);
+
        /* error ? */
        if (errCode)
        {
-           printf ("Zebra Search Error %d %s %s\n",
-                   errCode, errString, errAdd ? errAdd : "");
+           printf ("Zebra Search Error %d %s\n",
+                   errCode, errString);
        }
        else
        {
@@ -257,5 +264,6 @@ int main (int argc, char **argv)
     odr_destroy (odr_input);
     odr_destroy (odr_output);
     zebra_close (zh);
+    zebra_stop (zs);
     return 0;
 }