X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzoomtst5.c;h=21eccb158d019cc7a94b000d965553e55899f15a;hp=1d4cdda90eea469b821635feffca9494930b83fd;hb=d84e4c3cd444d04aee7beeadb5bb0ae061ee24c9;hpb=d57ade59211707b9bcfacc61039e446c9fa3f36f diff --git a/zoom/zoomtst5.c b/zoom/zoomtst5.c index 1d4cdda..21eccb1 100644 --- a/zoom/zoomtst5.c +++ b/zoom/zoomtst5.c @@ -1,10 +1,7 @@ -/* $Id: zoomtst5.c,v 1.11 2006-04-21 10:28:08 adam Exp $ */ - -/** \file zoomtst5.c - \brief Asynchronous multi-target client with sort - - 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 #include @@ -13,9 +10,9 @@ #include #include -const char *my_callback (void *handle, const char *name) +const char *my_callback(void *handle, const char *name) { - if (!strcmp (name, "async")) + if (!strcmp(name, "async")) return "1"; return 0; } @@ -23,103 +20,115 @@ const char *my_callback (void *handle, const char *name) int main(int argc, char **argv) { int i; - int no = argc-3; + 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 = ZOOM_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 .. */ - ZOOM_options_set_callback (o, my_callback, 0); + ZOOM_options_set_callback(o, my_callback, 0); /* get 20 (at most) records from beginning */ - ZOOM_options_set (o, "count", "20"); + ZOOM_options_set(o, "count", "20"); - ZOOM_options_set (o, "implementationName", "sortapp"); - ZOOM_options_set (o, "preferredRecordSyntax", "usmarc"); - ZOOM_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 */ - q = ZOOM_query_create (); - if (ZOOM_query_prefix (q, 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 (ZOOM_query_sortby (q, 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