batchtest partially working
[lttv.git] / ltt / branches / poly / lttv / lttv / tracecontext.h
index dc652e252c15bad7a4036d1a706fe9a1b8112cfb..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;
@@ -180,12 +181,6 @@ GType lttv_tracefile_context_get_type (void);
 void lttv_process_traceset(LttvTracesetContext *self, LttTime end, 
     unsigned nb_events);
 
-/* Save the complete tracefile information in the context */
-//void lttv_process_traceset_get_sync_data(LttvTracesetContext *self);
-
-/* Put all the tracefiles at the tracefile context position */
-void lttv_process_traceset_synchronize_tracefiles(LttvTracesetContext *self);
-
 /* Process traceset can also be done in smaller pieces calling begin,
  * then seek and middle repeatedly, and end. The middle function return the
  * number of events processed. It will be smaller than nb_events if the end time
@@ -265,15 +260,33 @@ 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
    information is then used to fill the LttvTraceHook structure. This
@@ -281,8 +294,8 @@ 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);
@@ -308,8 +321,6 @@ gint lttv_traceset_context_ctx_pos_compare(const LttvTracesetContext *self,
 LttTime lttv_traceset_context_position_get_time(
                                       const LttvTracesetContextPosition *pos);
 
-gboolean lttv_process_tracefile_seek_position(LttvTracefileContext *self, 
-                                              const LttEventPosition *pos);
-
+gint compare_tracefile(gconstpointer a, gconstpointer b);
 
 #endif // PROCESSTRACE_H
This page took 0.024344 seconds and 4 git commands to generate.