X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fapitest.c;h=c9eac7f48d8687a8538f50ab748dde1d08e477da;hb=9b4f970d2816490fa4cc850fabc51f494ee5612b;hp=d9cef3242ca9097db586e2828e1d7816034e7a8c;hpb=d0276ba178f8bdd1ccad216d8b4ec9af832b0cf7;p=idzebra-moved-to-github.git diff --git a/index/apitest.c b/index/apitest.c index d9cef32..c9eac7f 100644 --- a/index/apitest.c +++ b/index/apitest.c @@ -1,8 +1,14 @@ +/* + * Copyright (C) 1995-2000, Index Data + * All rights reserved. + * + * $Header: /home/cvsroot/idis/index/Attic/apitest.c,v 1.10 2000-09-06 08:59:36 adam Exp $ + */ #include -#include -#include +#include +#include #include "zebraapi.h" /* Small routine to display GRS-1 record variants ... */ @@ -98,33 +104,43 @@ int main (int argc, char **argv) { /* odr is a handle to memory assocated with RETURNED data from various functions */ - ODR odr = odr_createmem (ODR_ENCODE); + 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"; 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 ("zebra.cfg"); + 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 - /* 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, PROTO_Z3950, argv[argno]); + Z_RPNQuery *query = p_query_rpn (odr_input, PROTO_Z3950, argv[argno]); char setname[64]; int errCode; int i; @@ -137,15 +153,33 @@ int main (int argc, char **argv) if (!query) { logf (LOG_WARN, "bad query %s\n", argv[argno]); - odr_reset (odr); + 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, query, 1, &base, setname); + zebra_search_rpn (zh, odr_input, odr_output, query, 1, &base, setname); /* status ... */ errCode = zebra_errCode (zh); @@ -169,16 +203,17 @@ int main (int argc, char **argv) noOfRecordsToFetch = zebra_hits(zh); /* reset our memory - we've finished dealing with search */ - odr_reset (odr); + odr_reset (odr_input); + odr_reset (odr_output); /* prepare to fetch ... */ - records = malloc (sizeof(*records) * noOfRecordsToFetch); + 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