X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Flttv%2Ftraceset.h;h=4b998ad27dfc56fffa0204442fe57e32d7894764;hb=88bf15f0f2a239186b5cf6fcf8711786907ca483;hp=6af2e39cbb7eba0a26a89b59e7ce47989f892d34;hpb=451aaf275d421d71097d479eb0ae64fe908d8b6f;p=lttv.git diff --git a/lttv/lttv/traceset.h b/lttv/lttv/traceset.h index 6af2e39c..4b998ad2 100644 --- a/lttv/lttv/traceset.h +++ b/lttv/lttv/traceset.h @@ -23,6 +23,7 @@ #include #include #include +#include #include /* A traceset is a set of traces to be analyzed together. */ @@ -42,6 +43,7 @@ struct _LttvTraceset { LttvHooks *event_hooks; struct bt_ctf_iter *iter; GPtrArray *state_trace_handle_index; + gboolean has_precomputed_states; }; struct _LttvTrace { @@ -57,6 +59,8 @@ struct _LttvTrace { struct _LttvTracesetPosition { struct bt_ctf_iter *iter; struct bt_iter_pos *bt_pos; + guint64 timestamp; + int cpu_id; }; /* Tracesets may be added to, removed from and their content listed. */ @@ -83,6 +87,7 @@ gint lttv_traceset_save(LttvTraceset *s); void lttv_traceset_destroy(LttvTraceset *s); +LttvHooks *lttv_traceset_get_hooks(LttvTraceset *s); void lttv_traceset_add(LttvTraceset *s, LttvTrace *t); @@ -110,19 +115,39 @@ void lttv_traceset_remove(LttvTraceset *s, unsigned i); LttvAttribute *lttv_traceset_attribute(LttvTraceset *s); /* Take a position snapshot */ -LttvTracesetPosition *lttv_traceset_create_position(LttvTraceset *traceset); +LttvTracesetPosition *lttv_traceset_create_current_position(LttvTraceset *traceset); /* Destroy position snapshot */ void lttv_traceset_destroy_position(LttvTracesetPosition *traceset_pos); -void lttv_traceset_seek_to_position(LttvTracesetPosition *traceset_pos); +void lttv_traceset_seek_to_position(const LttvTracesetPosition *traceset_pos); guint lttv_traceset_get_cpuid_from_event(LttvEvent *event); /* Returns the minimum timestamp of the traces in the traceset */ guint64 lttv_traceset_get_timestamp_begin(LttvTraceset *traceset); /* Returns the maximum timestamp of the traces in the traceset */ guint64 lttv_traceset_get_timestamp_end(LttvTraceset *traceset); +/* Return a TimeInterval from timestamp of the first event to the last event [experimentale]*/ +TimeInterval lttv_traceset_get_time_span_real(LttvTraceset *ts); +/* Returns a TimeInterval struct that represents the min and max of the traceset */ +TimeInterval lttv_traceset_get_time_span(LttvTraceset *traceset); const char *lttv_traceset_get_name_from_event(LttvEvent *event); +LttvTracesetPosition *lttv_traceset_create_time_position(LttvTraceset *ts, LttTime timestamp); + +guint64 lttv_traceset_position_get_timestamp(const LttvTracesetPosition *pos); + +LttTime lttv_traceset_position_get_time(const LttvTracesetPosition *pos); + +LttTime lttv_traceset_get_current_time(const LttvTraceset *ts); + +int lttv_traceset_position_compare(const LttvTracesetPosition *pos1, const LttvTracesetPosition *pos2); + +int lttv_traceset_position_time_compare(const LttvTracesetPosition *pos1, + const LttvTracesetPosition *pos2); + +int lttv_traceset_position_compare_current(const LttvTraceset *ts, + const LttvTracesetPosition *pos); + #endif // TRACESET_H