Work on bug #550: Avoid exit. In particular the mfile/cfile/bfile has
[idzebra-moved-to-github.git] / index / apitest.c
diff --git a/index/apitest.c b/index/apitest.c
deleted file mode 100644 (file)
index 8490a9d..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/* $Id: apitest.c,v 1.26 2006-08-14 10:40:15 adam Exp $
-   Copyright (C) 1995-2006
-   Index Data ApS
-
-This file is part of the Zebra server.
-
-Zebra is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <yaz/log.h>
-#include <yaz/pquery.h>
-#include <idzebra/api.h>
-
-/* Small routine to display GRS-1 record variants ... */
-/* Copied verbatim from yaz/client/client.c */
-static void display_variant(Z_Variant *v, int level)
-{
-    int i;
-
-    for (i = 0; i < v->num_triples; i++)
-    {
-       printf("%*sclass=%d,type=%d", level * 4, "", *v->triples[i]->zclass,
-           *v->triples[i]->type);
-       if (v->triples[i]->which == Z_Triple_internationalString)
-           printf(",value=%s\n", v->triples[i]->value.internationalString);
-       else
-           printf("\n");
-    }
-}
-/* Small routine to display a GRS-1 record ... */
-/* Copied verbatim from yaz/client/client.c */
-static void display_grs1(Z_GenericRecord *r, int level)
-{
-    int i;
-
-    if (!r)
-        return;
-    for (i = 0; i < r->num_elements; i++)
-    {
-        Z_TaggedElement *t;
-
-        printf("%*s", level * 4, "");
-        t = r->elements[i];
-        printf("(");
-        if (t->tagType)
-            printf("%d,", *t->tagType);
-        else
-            printf("?,");
-        if (t->tagValue->which == Z_StringOrNumeric_numeric)
-            printf("%d) ", *t->tagValue->u.numeric);
-        else
-            printf("%s) ", t->tagValue->u.string);
-        if (t->content->which == Z_ElementData_subtree)
-        {
-            printf("\n");
-            display_grs1(t->content->u.subtree, level+1);
-        }
-        else if (t->content->which == Z_ElementData_string)
-            printf("%s\n", t->content->u.string);
-        else if (t->content->which == Z_ElementData_numeric)
-           printf("%d\n", *t->content->u.numeric);
-       else if (t->content->which == Z_ElementData_oid)
-       {
-           int *ip = t->content->u.oid;
-           oident *oent;
-
-           if ((oent = oid_getentbyoid(t->content->u.oid)))
-               printf("OID: %s\n", oent->desc);
-           else
-           {
-               printf("{");
-               while (ip && *ip >= 0)
-                   printf(" %d", *(ip++));
-               printf(" }\n");
-           }
-       }
-       else if (t->content->which == Z_ElementData_noDataRequested)
-           printf("[No data requested]\n");
-       else if (t->content->which == Z_ElementData_elementEmpty)
-           printf("[Element empty]\n");
-       else if (t->content->which == Z_ElementData_elementNotThere)
-           printf("[Element not there]\n");
-       else
-            printf("??????\n");
-       if (t->appliedVariant)
-           display_variant(t->appliedVariant, level+1);
-       if (t->metaData && t->metaData->supportedVariants)
-       {
-           int c;
-
-           printf("%*s---- variant list\n", (level+1)*4, "");
-           for (c = 0; c < t->metaData->num_supportedVariants; c++)
-           {
-               printf("%*svariant #%d\n", (level+1)*4, "", c);
-               display_variant(t->metaData->supportedVariants[c], level + 2);
-           }
-       }
-    }
-}
-
-/* Small test main to illustrate the use of the C api */
-int main (int argc, char **argv)
-{
-    /* odr is a handle to memory assocated with RETURNED data from
-       various functions */
-    ODR odr_input, odr_output;
-    
-    /* 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 */
-    const char *base = "Default";
-    int argno;
-
-    nmem_init ();
-
-    yaz_log_init_file("apitest.log");
-
-    odr_input = odr_createmem (ODR_DECODE);    
-    odr_output = odr_createmem (ODR_ENCODE);    
-    
-    zs = zebra_start ("zebra.cfg");
-    if (!zs)
-    {
-       printf ("zebra_start failed; missing zebra.cfg?\n");
-       exit (1);
-    }
-    /* open Zebra */
-    zh = zebra_open (zs, 0);
-    if (!zh)
-    {
-       printf ("zebras_open failed\n");
-       exit (1);
-    }
-    if (zebra_select_databases (zh, 1, &base) != ZEBRA_OK)
-    {
-       printf ("zebra_select_databases failed\n");
-       exit (1);
-    }
-    /* Each argument to main will be a query */
-    for (argno = 1; argno < argc; argno++)
-    {
-       /* parse the query and generate an RPN structure */
-       Z_RPNQuery *query = p_query_rpn (odr_input, PROTO_Z3950, argv[argno]);
-       char setname[64];
-       int errCode;
-       int i;
-        zint hits;
-       char *errString;
-       ZebraRetrievalRecord *records;
-       int noOfRecordsToFetch;
-
-       /* bad query? */
-       if (!query)
-       {
-           yaz_log (YLOG_WARN, "bad query %s\n", argv[argno]);
-           odr_reset (odr_input);
-           continue;
-       }
-       else
-       {
-           char out_str[100];
-           int r;
-#if 1
-           r = zebra_string_norm (zh, 'w',
-                                  argv[argno], strlen(argv[argno]),
-                                  out_str, sizeof(out_str));
-           if (r >= 0)
-           {
-               printf ("norm: '%s'\n", out_str);
-           }
-           else
-           {
-               printf ("norm fail: %d\n", r);
-           }
-#endif
-
-       }
-       /* result set name will be called 1,2, etc */
-       sprintf (setname, "%d", argno);
-
-       /* fire up the search */
-       zebra_search_RPN (zh, odr_input, query, setname, &hits);
-       
-       /* status ... */
-        zebra_result (zh, &errCode, &errString);
-       
-       /* error? */
-       if (errCode)
-       {
-           printf ("Zebra Search Error %d %s\n",
-                   errCode, errString);
-           continue;
-       }
-       /* ok ... */
-       printf ("Zebra Search gave " ZINT_FORMAT " hits\n", hits);
-       
-       /* Deterimine number of records to fetch ... */
-       if (hits > 10)
-           noOfRecordsToFetch = 10;
-       else
-           noOfRecordsToFetch = hits;
-
-       /* reset our memory - we've finished dealing with search */
-       odr_reset (odr_input);
-       odr_reset (odr_output);
-
-       /* prepare to fetch ... */
-       records = odr_malloc (odr_input, sizeof(*records) * noOfRecordsToFetch);
-       /* specify position of each record to fetch */
-       /* first one is numbered 1 and NOT 0 */
-       for (i = 0; i<noOfRecordsToFetch; i++)
-           records[i].position = i+1;
-       /* fetch them and request for GRS-1 records */
-       zebra_records_retrieve (zh, odr_input, setname, NULL, VAL_SUTRS,
-                               noOfRecordsToFetch, records);
-
-       /* status ... */
-
-        zebra_result (zh, &errCode, &errString);
-
-       /* error ? */
-       if (errCode)
-       {
-           printf ("Zebra Search Error %d %s\n",
-                   errCode, errString);
-       }
-       else
-       {
-           /* inspect each record in result */
-           for (i = 0; i<noOfRecordsToFetch; i++)
-           {
-               printf ("Record %d\n", i+1);
-               /* error when fetching this record? */
-               if (records[i].errCode)
-               {
-                   printf ("  Error %d\n", records[i].errCode);
-                   continue;
-               }
-               /* GRS-1 record ? */
-               if (records[i].format == VAL_GRS1)
-               {
-                   Z_GenericRecord *grs_record =
-                       (Z_GenericRecord *) records[i].buf;
-                   printf ("  GRS-1\n");
-                   display_grs1(grs_record, 0);
-               }
-                else if (records[i].format == VAL_SUTRS)
-                {
-                    printf ("  SUTRS\n");
-                    printf ("%.*s", records[i].len, records[i].buf);
-                }
-               /* some other record we don't handle yet... */
-               else
-               {
-                   printf ("  Other record (ignored)\n");
-               }
-           }
-       }
-       /* reset our memory - we've finished dealing with present */
-       odr_reset (odr_input); 
-       odr_reset (odr_output);
-    }
-    odr_destroy (odr_input);
-    odr_destroy (odr_output);
-    zebra_close (zh);
-    zebra_stop (zs);
-    return 0;
-}
-/*
- * Local variables:
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- * vim: shiftwidth=4 tabstop=8 expandtab
- */
-