X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=index%2Fapitest.c;h=8490a9d36f22b6a3e162c8a5ddf30ebb6fee97cd;hp=7207b97927b63cbb421118fc8de78fd644339db1;hb=4478d785b7769691261005c98063b98a5a5971b3;hpb=6e044d5a523bb4363d07af757ebf1bcfe0ad6c04 diff --git a/index/apitest.c b/index/apitest.c index 7207b97..8490a9d 100644 --- a/index/apitest.c +++ b/index/apitest.c @@ -1,9 +1,31 @@ +/* $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 +#include -#include -#include -#include "zebraapi.h" +#include +#include +#include /* Small routine to display GRS-1 record variants ... */ /* Copied verbatim from yaz/client/client.c */ @@ -100,33 +122,41 @@ 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 (); - log_init_file("apitest.log"); + yaz_log_init_file("apitest.log"); 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, 0); if (!zh) { - printf ("Couldn't init zebra\n"); + printf ("zebras_open failed\n"); + exit (1); + } + if (zebra_select_databases (zh, 1, &base) != ZEBRA_OK) + { + printf ("zebra_select_databases failed\n"); exit (1); } - - /* This call controls the logging facility in YAZ/Zebra */ -#if 0 - log_init(LOG_ALL, "", "out.log"); -#endif - /* Each argument to main will be a query */ for (argno = 1; argno < argc; argno++) { @@ -135,45 +165,61 @@ int main (int argc, char **argv) char setname[64]; int errCode; int i; - const char *errString; - char *errAdd; + zint hits; + char *errString; ZebraRetrievalRecord *records; int noOfRecordsToFetch; /* bad query? */ if (!query) { - logf (LOG_WARN, "bad query %s\n", argv[argno]); + 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", i); + 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, 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 " ZINT_FORMAT " 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); @@ -190,15 +236,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 { @@ -239,5 +284,14 @@ int main (int argc, char **argv) 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 + */ +