X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Ftracecontext.h;h=1336160be970e70fbb17fb54d635a184bf8e2898;hb=fc6a87b233ef7a987817ab50aeec1342f5aee16f;hp=429a90162f5545343d884e2991a850d0f504f80c;hpb=18c87975cf8d433804fd1ba833e1024790c5b4b8;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/tracecontext.h b/ltt/branches/poly/lttv/lttv/tracecontext.h index 429a9016..1336160b 100644 --- a/ltt/branches/poly/lttv/lttv/tracecontext.h +++ b/ltt/branches/poly/lttv/lttv/tracecontext.h @@ -77,6 +77,11 @@ typedef struct _LttvTracefileContextClass LttvTracefileContextClass; typedef struct _LttvTracesetContextPosition LttvTracesetContextPosition; typedef struct _LttvTraceContextPosition LttvTraceContextPosition; +#ifndef LTTVFILTER_TYPE_DEFINED +typedef struct _LttvFilter LttvFilter; +#define LTTVFILTER_TYPE_DEFINED +#endif + #define LTTV_TRACESET_CONTEXT_TYPE (lttv_traceset_context_get_type ()) #define LTTV_TRACESET_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LTTV_TRACESET_CONTEXT_TYPE, LttvTracesetContext)) #define LTTV_TRACESET_CONTEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), LTTV_TRACESET_CONTEXT_TYPE, LttvTracesetContextClass)) @@ -142,6 +147,7 @@ struct _LttvTraceContext { GArray *tracefiles; LttvAttribute *a; LttvAttribute *t_a; + TimeInterval time_span; }; struct _LttvTraceContextClass { @@ -169,6 +175,8 @@ struct _LttvTracefileContext { LttvHooksById *event_by_id; LttTime timestamp; LttvAttribute *a; + gint target_pid; /* Target PID of the event. + Updated by state.c. -1 means unset. */ }; struct _LttvTracefileContextClass { @@ -306,7 +314,8 @@ LttvTracefileContext *lttv_traceset_context_get_current_tfc( LttvTracesetContext *self); -LttvTracesetContextPosition *lttv_traceset_context_position_new(); +LttvTracesetContextPosition *lttv_traceset_context_position_new( + const LttvTracesetContext *self); void lttv_traceset_context_position_save(const LttvTracesetContext *self, LttvTracesetContextPosition *pos); @@ -335,4 +344,37 @@ void lttv_process_traceset_synchronize_tracefiles(LttvTracesetContext *tsc); void lttv_process_traceset_get_sync_data(LttvTracesetContext *tsc); +/* Seek n events forward and backward (without filtering) : only use these where + * necessary : the seek backward is costy. */ + +#define BACKWARD_SEEK_MUL 2 /* Multiplication factor of time_offset between + backward seek iterations */ + +static const LttTime seek_back_default_offset = { 1, 0 }; + +typedef gboolean check_handler(guint count, gboolean *stop_flag, gpointer data); + +guint lttv_process_traceset_seek_n_forward(LttvTracesetContext *self, + guint n, + check_handler *check, + gboolean *stop_flag, + LttvFilter *filter1, + LttvFilter *filter2, + LttvFilter *filter3, + gpointer data); +typedef void (*seek_time_fct)(LttvTracesetContext *self, LttTime start); + +/* If first_offset is ltt_time_zero, it will choose a default value */ +guint lttv_process_traceset_seek_n_backward(LttvTracesetContext *self, + guint n, + LttTime first_offset, + seek_time_fct, + check_handler *check, + gboolean *stop_flag, + LttvFilter *filter1, + LttvFilter *filter2, + LttvFilter *filter3, + gpointer data); + + #endif // PROCESSTRACE_H