#include <string.h>
#include <lttv/lttv.h>
-#include <lttv/tracecontext.h>
+#include <lttv/traceset-process.h>
#include <ltt/event.h>
#include <ltt/trace.h>
+#ifdef BABEL_NOFILTER
#include <lttv/filter.h>
+#endif
#include <errno.h>
#include <ltt/time.h>
+#include <lttv/event.h>
#include <babeltrace/context.h>
#include <babeltrace/iterator.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/iterator.h>
+
+#ifdef BABEL_CLEANUP
gint compare_tracefile(gconstpointer a, gconstpointer b)
{
gint comparison = 0;
* set, else, a position is set (may be end
* of trace, with ep->len == 0) */
};
-
+#endif
void lttv_context_init(LttvTracesetContext *self, LttvTraceset *ts)
{
LTTV_TRACESET_CONTEXT_GET_CLASS(self)->init(self, ts);
void lttv_traceset_context_compute_time_span(LttvTracesetContext *self,
TimeInterval *time_span)
{
+ //todo mdenis: adapt to babeltrace
+#ifdef BABEL_CLEANUP
LttvTraceset * traceset = self->ts;
int numTraces = lttv_traceset_number(traceset);
int i;
for(i=0; i<numTraces;i++){
tc = self->traces[i];
+
trace = tc->t;
ltt_trace_time_span_get(trace, &s, &e);
time_span->end_time = e;
}
}
+#endif
}
static void init_tracefile_context(LttTracefile *tracefile,
&begin_pos,
NULL);
self->event_hooks = lttv_hooks_new();
-#ifdef BABEL_CLEANUP
+ self->tmpState = g_new(LttvTraceState *, 1);
+
for(i = 0 ; i < nb_trace ; i++) {
tc = LTTV_TRACESET_CONTEXT_GET_CLASS(self)->new_trace_context(self);
self->traces[i] = tc;
tc->ts_context = self;
tc->index = i;
tc->vt = lttv_traceset_get(ts, i);
+#ifdef BABEL_CLEANUP
tc->t = lttv_trace(tc->vt);
+#endif
tc->a = g_object_new(LTTV_ATTRIBUTE_TYPE, NULL);
tc->t_a = lttv_trace_attribute(tc->vt);
tc->tracefiles = g_array_sized_new(FALSE, TRUE,
sizeof(LttvTracefileContext*), 10);
+#ifdef BABEL_CLEANUP
tracefiles_groups = ltt_trace_get_tracefiles_groups(tc->t);
if(tracefiles_groups != NULL) {
args.func = (ForEachTraceFileFunc)init_tracefile_context;
(GDataForeachFunc)compute_tracefile_group,
&args);
}
+#endif
}
-#endif
self->sync_position = lttv_traceset_context_position_new(self);
+#ifdef BABEL_CLEANUP
self->pqueue = g_tree_new(compare_tracefile);
+#endif
lttv_process_traceset_seek_time(self, ltt_time_zero);
lttv_traceset_context_compute_time_span(self, &self->time_span);
unsigned count = 0;
- struct bt_ctf_event *event;
+ gint last_ret = 0;
+ struct bt_ctf_event *bt_event;
+ LttvEvent event;
+
while(TRUE) {
- if((count >= nb_events) && (nb_events != G_MAXULONG)) {
+ if(last_ret == TRUE || ((count >= nb_events) && (nb_events != G_MAXULONG))) {
break;
}
- if((event = bt_ctf_iter_read_event(self->iter)) != NULL) {
+ if((bt_event = bt_ctf_iter_read_event(self->iter)) != NULL) {
count++;
- /* TODO ybrosseau: encapsulate the event into something */
- lttv_hooks_call(self->event_hooks, event);
+ event.bt_event = bt_event;
+ /* TODO ybrosseau 2012-04-01: use bt_ctf_get_trace_handle
+ to retrieve the right state container */
+ event.state = self->tmpState;
+
+ last_ret = lttv_hooks_call(self->event_hooks, &event);
if(bt_iter_next(bt_ctf_get_iter(self->iter)) < 0) {
printf("ERROR NEXT\n");
*/
void lttv_process_trace_seek_time(LttvTraceContext *self, LttTime start)
{
-
-
-#ifdef BABEL_CLEANUP
guint i, nb_tracefile;
gint ret;
g_debug("test tree after seek_time");
g_tree_foreach(pqueue, test_tree, NULL);
#endif //DEBUG
-#endif
}
/****************************************************************************