+struct event_line_t
+{
+ int connection;
+ long time_sec;
+ long time_usec;
+ int progress;
+ int event;
+ char zoom_event[128];
+ int error;
+ char errmsg[128];
+};
+
+
+void print_event_line(struct event_line_t *pel)
+{
+ printf ("%d\t%ld.%06ld\t%d\t%d\t%s\t%d\t%s\n",
+ pel->connection, pel->time_sec, pel->time_usec,
+ pel->progress,
+ pel->event, pel->zoom_event,
+ pel->error, pel->errmsg);
+}
+
+void update_events(int *elc, struct event_line_t *els,
+ int repeat,
+ int conn,
+ long sec,
+ long usec,
+ int prog,
+ int event,
+ const char * eventmsg,
+ int error,
+ const char * errmsg){
+
+ int ielc = repeat*parameters.concurrent + conn;
+ int iels = repeat*parameters.concurrent*10 + conn*10 + elc[ielc];
+
+ els[iels].connection = conn;
+ els[iels].time_sec = sec;
+ els[iels].time_usec = usec;
+ els[iels].progress = prog;
+ els[iels].event = event;
+ strcpy(els[iels].zoom_event, eventmsg);
+ els[iels].error = error;
+ strcpy(els[iels].errmsg, errmsg);
+ /* print_event_line(&els[iels]); */
+ elc[ielc] += 1;
+}
+
+void print_events(int *elc, struct event_line_t *els,
+ int connections){
+ int i;
+ int j;
+ int k;
+ int ielc;
+ int iels;
+
+ for (k=0; k < parameters.repeat; k++){
+ for (i=0; i < connections; i++){
+ ielc = k * parameters.concurrent + i;
+ for (j=0; j < elc[ielc]; j++){
+ iels = k * parameters.concurrent * 10 + i * 10 + j;
+ print_event_line(&els[iels]);
+ }
+ printf("\n");
+ }
+ printf("\n");
+ }
+}
+
+