X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=zoom%2Fzoom-benchmark.c;h=19934f6ae136ced101a4eb99611cb025c3a5f85b;hp=fa15e7d259a741d062f97b8400a8dd5ec0eb80b8;hb=99f1879827d5be93a6363b5adbc83b824135dd88;hpb=cf5cfe44d60e1066999eff41bd239f8f4a59cd3e diff --git a/zoom/zoom-benchmark.c b/zoom/zoom-benchmark.c index fa15e7d..19934f6 100644 --- a/zoom/zoom-benchmark.c +++ b/zoom/zoom-benchmark.c @@ -1,7 +1,6 @@ -/* - * $Id: zoom-benchmark.c,v 1.12 2005-09-20 12:07:29 marc Exp $ - * - * Asynchronous multi-target client doing search and piggyback retrieval +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2010 Index Data + * See the file LICENSE for details. */ #include @@ -16,10 +15,10 @@ /* naming events */ -static char* zoom_events[10]; +static char* zoom_events[ZOOM_EVENT_MAX+1]; /* re-sorting event numbers to progress numbers */ -static int zoom_progress[10]; +static int zoom_progress[ZOOM_EVENT_MAX+1]; /* commando line parameters */ static struct parameters_t { @@ -75,10 +74,15 @@ void update_events(int *elc, struct event_line_t *els, els[iels].time_usec = usec; els[iels].progress = prog; els[iels].event = event; - strcpy(els[iels].zoom_event, eventmsg); + + if (eventmsg) + strcpy(els[iels].zoom_event, eventmsg); + else + strcpy(els[iels].zoom_event, "---"); + els[iels].error = error; strcpy(els[iels].errmsg, errmsg); - //print_event_line(&els[iels]); + /* print_event_line(&els[iels]); */ elc[ielc] += 1; } @@ -105,7 +109,7 @@ void print_events(int *elc, struct event_line_t *els, -void init_statics() +void init_statics(void) { int i; char nullstring[1] = ""; @@ -121,18 +125,20 @@ void init_statics() zoom_events[ZOOM_EVENT_RECV_APDU] = "ZOOM_EVENT_RECV_APDU"; zoom_events[ZOOM_EVENT_RECV_RECORD] = "ZOOM_EVENT_RECV_RECORD"; zoom_events[ZOOM_EVENT_RECV_SEARCH] = "ZOOM_EVENT_RECV_SEARCH"; + zoom_events[ZOOM_EVENT_END] = "ZOOM_EVENT_END"; /* re-sorting event numbers to progress numbers */ zoom_progress[ZOOM_EVENT_NONE] = 0; zoom_progress[ZOOM_EVENT_CONNECT] = 1; zoom_progress[ZOOM_EVENT_SEND_DATA] = 3; zoom_progress[ZOOM_EVENT_RECV_DATA] = 4; - zoom_progress[ZOOM_EVENT_TIMEOUT] = 8; - zoom_progress[ZOOM_EVENT_UNKNOWN] = 9; + zoom_progress[ZOOM_EVENT_TIMEOUT] = 9; + zoom_progress[ZOOM_EVENT_UNKNOWN] = 10; zoom_progress[ZOOM_EVENT_SEND_APDU] = 2; zoom_progress[ZOOM_EVENT_RECV_APDU] = 5; zoom_progress[ZOOM_EVENT_RECV_RECORD] = 7; zoom_progress[ZOOM_EVENT_RECV_SEARCH] = 6; + zoom_progress[ZOOM_EVENT_END] = 8; /* parameters */ parameters.concurrent = 1; @@ -186,7 +192,7 @@ long time_usec(struct time_type *ptime) return ptime->usec; } -void print_option_error() +void print_option_error(void) { fprintf(stderr, "zoom-benchmark: Call error\n"); fprintf(stderr, "zoom-benchmark -h host:port -q pqf-query " @@ -195,7 +201,7 @@ void print_option_error() "[-b (piggypack)] " "[-g (gnuplot outfile)] " "[-p proxy] \n"); - //"[-t timeout] \n"); + /* "[-t timeout] \n"); */ exit(1); } @@ -219,9 +225,11 @@ void read_params(int argc, char **argv, struct parameters_t *p_parameters){ case 'c': p_parameters->concurrent = atoi(arg); break; - //case 't': - //p_parameters->timeout = atoi(arg); - // break; +#if 0 + case 't': + p_parameters->timeout = atoi(arg); + break; +#endif case 'b': p_parameters->piggypack = 1; break; @@ -245,7 +253,9 @@ void read_params(int argc, char **argv, struct parameters_t *p_parameters){ printf(" query: %s \n", p_parameters->query); printf(" concurrent: %d \n", p_parameters->concurrent); printf(" repeat: %d \n", p_parameters->repeat); - //printf(" timeout: %d \n", p_parameters->timeout); +#if 0 + printf(" timeout: %d \n", p_parameters->timeout); +#endif printf(" proxy: %s \n", p_parameters->proxy); printf(" piggypack: %d \n\n", p_parameters->piggypack); printf(" gnuplot: %d \n\n", p_parameters->gnuplot); @@ -265,7 +275,7 @@ void read_params(int argc, char **argv, struct parameters_t *p_parameters){ print_option_error(); } -void print_table_header() +void print_table_header(void) { if (parameters.gnuplot) printf("#"); @@ -289,11 +299,11 @@ int main(int argc, char **argv) read_params(argc, argv, ¶meters); - z = xmalloc(sizeof(*z) * parameters.concurrent); - r = xmalloc(sizeof(*r) * parameters.concurrent); - elc = xmalloc(sizeof(*elc) * parameters.concurrent * parameters.repeat); - els = xmalloc(sizeof(*els) - * parameters.concurrent * parameters.repeat * 10); + z = (ZOOM_connection *) xmalloc(sizeof(*z) * parameters.concurrent); + r = (ZOOM_resultset *) xmalloc(sizeof(*r) * parameters.concurrent); + elc = (int *) xmalloc(sizeof(*elc) * parameters.concurrent * parameters.repeat); + els = (struct event_line_t *) xmalloc( + sizeof(*els) * parameters.concurrent * parameters.repeat * 10); o = ZOOM_options_create(); /* async mode */ @@ -344,7 +354,7 @@ int main(int argc, char **argv) const char *errmsg; const char *addinfo; int error = 0; - int progress = zoom_progress[event]; + //int progress = zoom_progress[event]; if (event == ZOOM_EVENT_SEND_DATA || event == ZOOM_EVENT_RECV_DATA) continue; @@ -354,8 +364,12 @@ int main(int argc, char **argv) /* updating events and event list */ error = ZOOM_connection_error(z[i-1] , &errmsg, &addinfo); if (error) - parameters.progress[i] = -progress; + parameters.progress[i] = zoom_progress[ZOOM_EVENT_UNKNOWN]; + //parameters.progress[i] = zoom_progress[ZOOM_EVENT_NONE]; + else if (event == ZOOM_EVENT_CONNECT) + parameters.progress[i] = zoom_progress[event]; else + //parameters.progress[i] = zoom_progress[event]; parameters.progress[i] += 1; update_events(elc, els, @@ -375,7 +389,7 @@ int main(int argc, char **argv) - } // for (k = 0; k < parameters.repeat; k++) repeat loop + } /* for (k = 0; k < parameters.repeat; k++) repeat loop */ /* output */ @@ -414,6 +428,7 @@ int main(int argc, char **argv) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab