- /* connect and init */
- ZOOM_connection_connect(z[i], parameters.host, 0);
- }
- /* search all */
- for (i = 0; i < parameters.concurrent; i++)
- r[i] = ZOOM_connection_search_pqf (z[i], parameters.query);
+ /* create connection - pass options (they are the same for all) */
+ z[i] = ZOOM_connection_create(o);
+
+ /* connect and init */
+ ZOOM_connection_connect(z[i], parameters.host, 0);
+ }
+ /* search all */
+ for (i = 0; i < parameters.concurrent; i++)
+ r[i] = ZOOM_connection_search_pqf (z[i], parameters.query);
+
+ /* network I/O. pass number of connections and array of connections */
+ while ((i = ZOOM_event (parameters.concurrent, z))){
+ int event = ZOOM_connection_last_event(z[i-1]);
+ const char *errmsg;
+ const char *addinfo;
+ int error = 0;
+ int progress = zoom_progress[event];
+
+ if (event == ZOOM_EVENT_SEND_DATA || event == ZOOM_EVENT_RECV_DATA)
+ continue;
+
+ time_stamp(&time);
+
+ /* updating events and event list */
+ error = ZOOM_connection_error(z[i-1] , &errmsg, &addinfo);
+ if (error)
+ parameters.progress[i] = -progress;
+ else
+ parameters.progress[i] += 1;
+
+ update_events(elc, els,
+ k, i-1,
+ time_sec(&time), time_usec(&time),
+ parameters.progress[i],
+ event, zoom_events[event],
+ error, errmsg);
+ }