priority higher than default. We will define this priority as PRIO_STATE,
defined to -10.
-If state has to be computed, lttv_process_traceset_begin is called to add state
-hooks to the context. Then, the state seek_closest will have to be used to
-restore the nearest state, plus a process_traceset with no hooks present other
-than the state hooks will have to be called to go from the closest state to the
-real time seeked.
+If state has to be computed, lttv_process_traceset_begin has to be called in
+a first time. It adds the state hooks to the context. Then, the state
+seek_closest will have to be used to restore the nearest state, plus a
+process_traceset with no hooks present other than the state hooks will have to
+be called to go from the closest state to the real time seeked.
The lttv_process_traceset_end will only need to be called if no further state
computation is needed.
- Type LttvTracesetContextPosition
+struct _LttvTraceContextPosition {
+ LttEventPosition *tf_pos; /* Position in each trace */
+ guint nb_tracefile; /* Number of tracefiles (check) */
+}
+
struct _LttvTracesetContextPosition {
- LttEventPosition *tracefile_position; /* Position in each trace/tracefile */
- guint num_tracefiles; /* Number of tracefiles (check) */
+ LttTraceContextPosition *t_pos; /* Position in each trace */
+ guint nb_trace; /* Number of traces (check) */
}
with interfaces :
lttv_process_traceset_seek_position will seek each tracefile to the right
position. We keep information about number of tracefiles for extra integrity
-checking when reloading the position in the context.
+checking when reloading the position in the context. It also loads the pqueue.
We modify lttv_process_traceset_middle so that it takes as arguments :
(LttvTracesetContext *self,
LttTime end,
-unsigned num_events,
+unsigned nb_events,
const LttvTracesetContextPosition *end_position)
-This new version of process traceset middle will call the middle hooks for
-events until the first criterion is fulfilled : either the end time is passed,
+This new version of process traceset middle will call the event hooks for
+events until the first criterion is fulfilled : either the end time is reached,
the number of events requested is passed or the end position is reached. When
this function ends, the end position can be extracted from the context, the end
event is set as described below and the number of events read is returned.
The end event is a pointer to the last event the hooks has been called for.
- lttv_process_traceset_seek_time : already implemented
+ - now loads the pqueue.
- lttv_process_traceset_begin(LttvTracesetContext *self,
- LttvHooksById *before_traceset,
- LttvHooksById *before_trace,
- LttvHooksById *before_tracefile,
- LttvHooksById *middle_hooks)
+ LttvHooks *before_traceset,
+ LttvHooks *before_trace,
+ LttvHooks *before_tracefile,
+ LttvHooks *event,
+ LttvHooksById *event_by_id)
- lttv_process_traceset_end(LttvTracesetContext *self,
- LttvHooksById *after_traceset,
- LttvHooksById *after_trace,
- LttvHooksById *after_tracefile,
- LttvHooksById *middle_hooks)
+ LttvHooks *after_traceset,
+ LttvHooks *after_trace,
+ LttvHooks *after_tracefile,
+ LttvHooks *event,
+ LttvHooksById *event_by_id)
- lttv_traceset_context_add_hooks and lttv_traceset_context_remove_hooks