+ // FIXME
+ // call process trace for each time interval
+ // Will have to be combined!
+ g_critical("SIZE time req len : %d", mw_data->current_tab->time_requests->len);
+
+ //g_assert(mw_data->current_tab->time_requests->len <= 1); //FIXME
+ /* Go through each time request. As they are already sorted by start_time,
+ * we check with the current event time if processing is needed. */
+ for(i=0; i < mw_data->current_tab->time_requests->len; i++)
+ {
+ g_critical("RUN i %d", i);
+ TimeRequest *time_request =
+ &g_array_index(mw_data->current_tab->time_requests, TimeRequest, i);
+ LttTime end_time = ltt_time_add( time_request->time_window.start_time,
+ time_request->time_window.time_width);
+
+ if(i == 0 || !(ltt_time_compare(time_request->time_window.start_time, ltt_event_time(tsc->e))<0) )
+ {
+ /* do it if first request or start_time >= last event's time */
+ lttv_process_traceset_seek_time(tsc, time_request->time_window.start_time);
+ lttv_process_traceset(tsc, end_time, time_request->num_events);
+ }
+ else
+ {
+ if(ltt_time_compare(time_request->time_window.start_time, ltt_event_time(tsc->e))<0
+ && !(ltt_time_compare(end_time, ltt_event_time(tsc->e))<0))
+ {
+ /* Continue reading from current event */
+ lttv_process_traceset(tsc, end_time, time_request->num_events);
+
+ }
+ else
+ {
+ if(ltt_time_compare(time_request->time_window.start_time, end_time) > 0)
+ {
+ /* This is a request for a minimum number of events, give
+ * more events than necessary */
+ lttv_process_traceset(tsc, end_time, time_request->num_events);
+ }
+ }
+ }
+
+ /* Call the end of process_traceset hook */
+ lttv_hooks_add(tmp_hooks,
+ time_request->after_hook,
+ time_request->after_hook_data);
+ lttv_hooks_call(tmp_hooks, time_request);
+ lttv_hooks_remove(tmp_hooks, time_request->after_hook);
+ }
+
+ /* Free the time requests */
+ g_array_free(mw_data->current_tab->time_requests, TRUE);
+ mw_data->current_tab->time_requests =
+ g_array_new(FALSE, FALSE, sizeof(TimeRequest));
+
+ mw_data->current_tab->time_request_pending = FALSE;
+
+ lttv_hooks_destroy(tmp_hooks);
+