fix state computation so it put max time computed in seek to end of trace time value...
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.h
index 4be8be70aba6388e7544656c3e2ab8c7bdc31d41..c200ff5156c18b21f75d57e922bbb5311470c9b5 100644 (file)
@@ -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))
@@ -94,8 +99,8 @@ struct _LttvTracesetContext {
   TimeInterval time_span;
   GTree *pqueue;
 
// LttvTracesetContextPosition *sync_position;   /* position at which to sync the
//                                                  trace context */
+  LttvTracesetContextPosition *sync_position;   /* position at which to sync the
+                                                   trace context */
 };
 
 struct _LttvTracesetContextClass {
@@ -142,6 +147,7 @@ struct _LttvTraceContext {
   GArray *tracefiles;
   LttvAttribute *a;
   LttvAttribute *t_a;
+  TimeInterval time_span;
 };
 
 struct _LttvTraceContextClass {
@@ -306,7 +312,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);
@@ -331,8 +338,29 @@ gint compare_tracefile(gconstpointer a, gconstpointer b);
 
 /* Synchronisation helpers : save/restore synchronization between ltt traces and
  * a traceset context. */
-//void lttv_process_traceset_synchronize_tracefiles(LttvTracesetContext *tsc);
+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 = { 0, 100000000 };
+
+guint lttv_process_traceset_seek_n_forward(LttvTracesetContext *self,
+                                           guint n,
+                                           LttvFilter *filter);
+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,
+                                            LttvFilter *filter);
 
-//void lttv_process_traceset_get_sync_data(LttvTracesetContext *tsc);
 
 #endif // PROCESSTRACE_H
This page took 0.024061 seconds and 4 git commands to generate.