X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzoomtst5.c;h=21eccb158d019cc7a94b000d965553e55899f15a;hp=84e5819845dbc7e5358e59300662e579fe07d4dd;hb=5ef9ca5de57e415b34c21fe0d17a79f7b8e6b636;hpb=bc66c2a11aa31c16f46c49100e99dc9b7e940faf diff --git a/zoom/zoomtst5.c b/zoom/zoomtst5.c index 84e5819..21eccb1 100644 --- a/zoom/zoomtst5.c +++ b/zoom/zoomtst5.c @@ -1,7 +1,6 @@ -/* - * $Id: zoomtst5.c,v 1.2 2001-10-24 12:24:43 adam Exp $ - * - * Asynchronous multi-target client doing search, sort and present +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data + * See the file LICENSE for details. */ #include @@ -11,114 +10,135 @@ #include #include -const char *my_callback (void *handle, const char *name) +const char *my_callback(void *handle, const char *name) { - if (!strcmp (name, "async")) - return "1"; + if (!strcmp(name, "async")) + return "1"; return 0; } int main(int argc, char **argv) { int i; - int no = argc-3; - Z3950_connection z[500]; /* allow at most 500 connections */ - Z3950_resultset r[500]; /* and result sets .. */ - Z3950_search s; - Z3950_options o; + int no = argc - 4; + ZOOM_connection z[500]; /* allow at most 500 connections */ + ZOOM_resultset r[500]; /* and result sets .. */ + ZOOM_query q; + ZOOM_options o; - o = Z3950_options_create (); - if (argc < 4) + o = ZOOM_options_create(); + if (argc < 5) { - fprintf (stderr, "usage:\n%s target1 .. targetN query sort\n", - *argv); - exit (2); + fprintf(stderr, "usage:\n%s target1 .. targetN query strategy sort\n", + *argv); + exit(2); } if (no > 500) no = 500; /* function my_callback called when reading options .. */ - Z3950_options_set_callback (o, my_callback, 0); + ZOOM_options_set_callback(o, my_callback, 0); /* get 20 (at most) records from beginning */ - Z3950_options_set (o, "count", "20"); + ZOOM_options_set(o, "count", "20"); - Z3950_options_set (o, "implementationName", "sortapp"); - Z3950_options_set (o, "preferredRecordSyntax", "usmarc"); - Z3950_options_set (o, "elementSetName", "B"); + ZOOM_options_set(o, "implementationName", "sortapp"); + ZOOM_options_set(o, "preferredRecordSyntax", "usmarc"); + ZOOM_options_set(o, "elementSetName", "B"); /* create query */ - s = Z3950_search_create (); - if (Z3950_search_prefix (s, argv[argc-2])) + q = ZOOM_query_create(); + if (strncmp("cql:", argv[argc-3], 4) == 0) + { + if (ZOOM_query_cql(q, argv[argc-3] + 4)) + { + printf("bad CQL: %s\n", argv[argc-3] + 4); + exit(1); + } + } + else if (ZOOM_query_prefix(q, argv[argc-3])) { - printf ("bad PQF: %s\n", argv[argc-2]); - exit (1); + printf("bad PQF: %s\n", argv[argc-3]); + exit(1); } - if (Z3950_search_sortby (s, argv[argc-1])) + if (ZOOM_query_sortby2(q, argv[argc-2], argv[argc-1])) { - printf ("bad sort spec: %s\n", argv[argc-1]); - exit (1); + printf("bad sort spec: %s\n", argv[argc-1]); + exit(1); } /* connect - and search all */ - for (i = 0; i