batchtest partially working
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.h
index 6bda5fc2371553e76a0d1e78b9ae8a64fd29ea7b..f6ea132250462bff37cae443adaf1e70115b6ce5 100644 (file)
@@ -135,7 +135,8 @@ struct _LttvTraceContext {
   guint index;                /* in ts_context->traces */
   LttTrace *t;
   LttvTrace *vt;
-  LttvTracefileContext **tracefiles;
+  //LttvTracefileContext **tracefiles;
+  GArray *tracefiles;
   LttvAttribute *a;
   LttvAttribute *t_a;
 };
@@ -157,10 +158,10 @@ struct _LttvTracefileContext {
   GObject parent;
 
   LttvTraceContext *t_context;
-  gboolean control;
// gboolean control;
   guint index;                /* in ts_context->tracefiles */
   LttTracefile *tf;
-  LttEvent *e;
// LttEvent *e;
   LttvHooks *event;
   LttvHooksById *event_by_id;
   LttTime timestamp;
@@ -196,7 +197,7 @@ void lttv_process_traceset_begin(LttvTracesetContext *self,
 
 guint lttv_process_traceset_middle(LttvTracesetContext *self,
                               LttTime end, 
-                              unsigned nb_events,
+                              guint nb_events,
                               const LttvTracesetContextPosition *end_position);
 
 void lttv_process_traceset_end(LttvTracesetContext *self,
@@ -259,14 +260,32 @@ void lttv_tracefile_context_add_hooks_by_id(LttvTracefileContext *self,
 void lttv_tracefile_context_remove_hooks_by_id(LttvTracefileContext *self,
                                               unsigned i);
 
+/* A LttvTraceHook has two arrays of LttvTraceHookByFacility,
+ * indexed by facility ID and a simple array used to walk all the hooks */
 typedef struct _LttvTraceHook {
+  GArray *fac_index;
+  GArray *fac_list;
+} LttvTraceHook;
+
+typedef struct _LttvTraceHookByFacility {
   LttvHook h;
   guint id;
   LttField *f1;
   LttField *f2;
   LttField *f3;
-} LttvTraceHook;
+} LttvTraceHookByFacility;
+
+
+/* Get the first facility corresponding to the name. As the types must be
+ * compatible, it is relevant to use the field name and sizes of the first
+ * facility to create data structures and assume the data will be compatible
+ * thorough the trace */
+LttvTraceHookByFacility *lttv_trace_hook_get_first(LttvTraceHook *th);
+
+LttvTraceHookByFacility *lttv_trace_hook_get_fac(
+    LttvTraceHook *th, guint facility_id);
 
+void lttv_trace_hook_destroy(LttvTraceHook *th);
 
 /* Search in the trace for the id of the named event type within the named
    facility. Then, find the three (if non null) named fields. All that
@@ -275,22 +294,33 @@ typedef struct _LttvTraceHook {
    registering a hook using this structure as event data;
    it already contains the (up to three) needed fields handles. */
  
-void lttv_trace_find_hook(LttTrace *t, char *facility, char *event_type,
-    char *field1, char *field2, char *field3, LttvHook h, LttvTraceHook *th);
+gint lttv_trace_find_hook(LttTrace *t, GQuark facility, GQuark event_type,
+    GQuark field1, GQuark field2, GQuark field3, LttvHook h, LttvTraceHook *th);
 
+LttvTracefileContext *lttv_traceset_context_get_current_tfc(
+                             LttvTracesetContext *self);
+
+
+LttvTracesetContextPosition *lttv_traceset_context_position_new();
 
 void lttv_traceset_context_position_save(const LttvTracesetContext *self,
                                     LttvTracesetContextPosition *pos);
 
 void lttv_traceset_context_position_destroy(LttvTracesetContextPosition *pos);
 
+void lttv_traceset_context_position_copy(LttvTracesetContextPosition *dest,
+                                   const LttvTracesetContextPosition *src);
+
 gint lttv_traceset_context_pos_pos_compare(
-                              const LttvTracesetContextPosition *pos1,
-                              const LttvTracesetContextPosition *pos2);
+                          const LttvTracesetContextPosition *pos1,
+                          const LttvTracesetContextPosition *pos2);
 
 gint lttv_traceset_context_ctx_pos_compare(const LttvTracesetContext *self,
-                                        const LttvTracesetContextPosition *pos);
+                                    const LttvTracesetContextPosition *pos2);
+
+LttTime lttv_traceset_context_position_get_time(
+                                      const LttvTracesetContextPosition *pos);
+
+gint compare_tracefile(gconstpointer a, gconstpointer b);
 
-gint lttv_traceset_context_pos_pos_compare(const LttvTracesetContextPosition *a,
-                                          const LttvTracesetContextPosition *b);
 #endif // PROCESSTRACE_H
This page took 0.027534 seconds and 4 git commands to generate.