mega modif by Mathieu Desnoyers. Independant main windows, multiple tracesets, contro...
[lttv.git] / ltt / branches / poly / include / lttv / processTrace.h
index 60dfd7ba55798b773f6f2b67f8de1139cdf2bcbd..610000cb19e276cdb41a6f33242157ae475830d1 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef PROCESSTRACE_H
 #define PROCESSTRACE_H
 
+#include <lttv/traceset.h>
 #include <lttv/attribute.h>
 #include <lttv/hook.h>
 #include <ltt/ltt.h>
    tracefile contexts may be subtyped as needed. Indeed, both the contexts
    and the hooks are defined by the caller. */
 
+
+typedef struct _LttvTracesetContext LttvTracesetContext;
+typedef struct _LttvTracesetContextClass LttvTracesetContextClass;
+
+typedef struct _LttvTraceContext LttvTraceContext;
+typedef struct _LttvTraceContextClass LttvTraceContextClass;
+
+typedef struct _LttvTracefileContext LttvTracefileContext;
+typedef struct _LttvTracefileContextClass LttvTracefileContextClass;
+
 #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))
@@ -52,9 +63,6 @@
 #define LTTV_IS_TRACESET_CONTEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), LTTV_TRACESET_CONTEXT_TYPE))
 #define LTTV_TRACESET_CONTEXT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), LTTV_TRACESET_CONTEXT_TYPE, LttvTracesetContextClass))
 
-typedef struct _LttvTracesetContext LttvTracesetContext;
-typedef struct _LttvTracesetContextClass LttvTracesetContextClass;
-
 struct _LttvTracesetContext {
   GObject parent;
 
@@ -63,6 +71,7 @@ struct _LttvTracesetContext {
   LttvHooks *after;
   LttvTraceContext **traces;
   LttvAttribute *a;
+  TimeInterval *Time_Span;
 };
 
 struct _LttvTracesetContextClass {
@@ -98,15 +107,12 @@ lttv_context_new_tracefile_context(LttvTracesetContext *self);
 #define LTTV_IS_TRACE_CONTEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), LTTV_TRACE_CONTEXT_TYPE))
 #define LTTV_TRACE_CONTEXT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), LTTV_TRACE_CONTEXT_TYPE, LttvTraceContextClass))
 
-typedef struct _LttvTraceContext LttvTraceContext;
-typedef struct _LttvTraceContextClass LttvTraceContextClass;
-
 struct _LttvTraceContext {
   GObject parent;
 
   LttvTracesetContext *ts_context;
   guint index;                /* in ts_context->traces */
-  LttvTrace *t;
+  LttTrace *t;
   LttvHooks *check;
   LttvHooks *before;
   LttvHooks *after;
@@ -128,26 +134,23 @@ GType lttv_trace_context_get_type (void);
 #define LTTV_IS_TRACEFILE_CONTEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), LTTV_TRACEFILE_CONTEXT_TYPE))
 #define LTTV_TRACEFILE_CONTEXT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), LTTV_TRACEFILE_CONTEXT_TYPE, LttvTracefileContextClass))
 
-typedef struct _LttvTracefileContext LttvTracefileContext;
-typedef struct _LttvTracefileContextClass LttvTracefileContextClass;
-
 struct _LttvTracefileContext {
   GObject parent;
 
   LttvTraceContext *t_context;
   gboolean control;
   guint index;                /* in ts_context->control/per_cpu_tracefiles */
-  LttvTracefile *tf;
+  LttTracefile *tf;
   LttvHooks *check;
   LttvHooks *before;
   LttvHooks *after;
-  LttvEvent *e;
+  LttEvent *e;
   LttvHooks *check_event;
   LttvHooks *before_event;
   LttvHooksById *before_event_by_id;
   LttvHooks *after_event;
   LttvHooksById *after_event_by_id;
-  LttTime *time;
+  LttTime timestamp;
   LttvAttribute *a;
 };
 
@@ -157,8 +160,8 @@ struct _LttvTracefileContextClass {
 
 GType lttv_tracefile_context_get_type (void);
 
-void lttv_process_trace(LttvTime start, LttvTime end, LttvTraceset *traceset, 
-    LttvTracesetContext *context);
+void lttv_process_trace(LttTime start, LttTime end, LttvTraceset *traceset, 
+    LttvTracesetContext *context, unsigned maxNumEvents);
 
 void lttv_traceset_context_add_hooks(LttvTracesetContext *self,
     LttvHooks *before_traceset, 
@@ -166,9 +169,12 @@ void lttv_traceset_context_add_hooks(LttvTracesetContext *self,
     LttvHooks *check_trace, 
     LttvHooks *before_trace, 
     LttvHooks *after_trace, 
+    LttvHooks *check_tracefile,
+    LttvHooks *before_tracefile,
+    LttvHooks *after_tracefile,
     LttvHooks *check_event, 
     LttvHooks *before_event, 
-    LttvHooks *after_event)
+    LttvHooks *after_event);
 
 void lttv_traceset_context_remove_hooks(LttvTracesetContext *self,
     LttvHooks *before_traceset, 
@@ -176,8 +182,30 @@ void lttv_traceset_context_remove_hooks(LttvTracesetContext *self,
     LttvHooks *check_trace, 
     LttvHooks *before_trace, 
     LttvHooks *after_trace, 
+    LttvHooks *check_tracefile,
+    LttvHooks *before_tracefile,
+    LttvHooks *after_tracefile,
     LttvHooks *check_event, 
     LttvHooks *before_event, 
-    LttvHooks *after_event)
+    LttvHooks *after_event);
+
+typedef struct _LttvTraceHook {
+  LttvHook h;
+  guint id;
+  LttField *f1;
+  LttField *f2;
+  LttField *f3;
+} LttvTraceHook;
+
+
+/* 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
+   is useful to find the specific id for an event within a trace, for
+   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);
 
 #endif // PROCESSTRACE_H
This page took 0.024539 seconds and 4 git commands to generate.