update script
[lttv.git] / ltt / branches / poly / ltt / event.h
index f13710754bfd2124335188f8937bf90b7a125b82..e91875e548f080ef9cc2a7c12bd7da1062422bdb 100644 (file)
@@ -1,5 +1,6 @@
 /* This file is part of the Linux Trace Toolkit trace reading library
  * Copyright (C) 2003-2004 Michel Dagenais
+ *               2006 Mathieu Desnoyers
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -19,7 +20,9 @@
 #ifndef EVENT_H
 #define EVENT_H
 
+#include <glib.h>
 #include <ltt/ltt.h>
+#include <sys/types.h>
 
 LttEvent *ltt_event_new();
 
@@ -33,26 +36,23 @@ void ltt_event_destroy(LttEvent *event);
 /* Obtain the trace unique integer id associated with the type of 
    this event */
 
-unsigned ltt_event_eventtype_id(LttEvent *e);
+unsigned ltt_event_eventtype_id(const LttEvent *e);
 
+unsigned ltt_event_facility_id(const LttEvent *e);
 
 /* Facility and type for the event */
 
-LttFacility *ltt_event_facility(LttEvent *e);
+LttFacility *ltt_event_facility(const LttEvent *e);
 
-LttEventType *ltt_event_eventtype(LttEvent *e);
+LttEventType *ltt_event_eventtype(const LttEvent *e);
 
 
-/* Root field for the event */
-
-LttField *ltt_event_field(LttEvent *e);
-
 
 /* Time and cycle count for the event */
 
-LttTime ltt_event_time(LttEvent *e);
+LttTime ltt_event_time(const LttEvent *e);
 
-LttCycleCount ltt_event_cycle_count(LttEvent *e);
+LttCycleCount ltt_event_cycle_count(const LttEvent *e);
 
 
 /* Obtain the position of the event within the tracefile. This
@@ -66,21 +66,20 @@ void ltt_event_position(LttEvent *e, LttEventPosition *ep);
 
 LttEventPosition * ltt_event_position_new();
 
-void ltt_event_position_get(LttEventPosition *ep,
-    unsigned *block_number, unsigned *index_in_block, LttTracefile ** tf);
+void ltt_event_position_get(LttEventPosition *ep, LttTracefile **tf,
+        guint *block, guint *offset, guint64 *tsc);
 
-void ltt_event_position_set(LttEventPosition *ep,
-    unsigned block_number, unsigned index_in_block);
+void ltt_event_position_set(LttEventPosition *ep, LttTracefile *tf,
+        guint block, guint offset, guint64 tsc);
 
 gint ltt_event_position_compare(const LttEventPosition *ep1,
                                 const LttEventPosition *ep2);
 
-gint ltt_event_event_position_compare(const LttEvent *event,
-                                      const LttEventPosition *ep);
-
 void ltt_event_position_copy(LttEventPosition *dest,
                              const LttEventPosition *src);
 
+LttTracefile *ltt_event_position_tracefile(LttEventPosition *ep);
+
 /* CPU id of the event */
 
 unsigned ltt_event_cpu_id(LttEvent *e);
@@ -96,13 +95,14 @@ void *ltt_event_data(LttEvent *e);
    instance. This function returns the number of elements for an array or 
    sequence field in an event. */
 
-unsigned ltt_event_field_element_number(LttEvent *e, LttField *f);
+guint64 ltt_event_field_element_number(LttEvent *e, LttField *f);
 
 
 /* Set the currently selected element for a sequence or array field. */
 
-void ltt_event_field_element_select(LttEvent *e, LttField *f, unsigned i);
+LttField *ltt_event_field_element_select(LttEvent *e, LttField *f, gulong i);
 
+off_t ltt_event_field_offset(LttEvent *e, LttField *f);
 
 /* A union is like a structure except that only a single member at a time
    is present depending on the specific event instance. This function tells
@@ -130,6 +130,9 @@ double ltt_event_get_double(LttEvent *e, LttField *f);
 /* The string obtained is only valid until the next read from
    the same tracefile. */
 
-char *ltt_event_get_string(LttEvent *e, LttField *f);
+gchar *ltt_event_get_string(LttEvent *e, LttField *f);
+
+void compute_offsets(LttTracefile *tf, LttFacility *fac,
+    LttEventType *event, off_t *offset, void *root);
 
 #endif // EVENT_H
This page took 0.024749 seconds and 4 git commands to generate.