// NULL);
s->iter = 0;
s->event_hooks = lttv_hooks_new();
-
+ s->state_trace_handle_index = g_ptr_array_new();
new_trace->traceset = ts;
new_trace->state = g_new(LttvTraceState,1);
lttv_trace_state_init(new_trace->state,new_trace);
- ts->tmpState = new_trace->state;
+
+ /* Add the state to the trace_handle to state index */
+ g_ptr_array_set_size(ts->state_trace_handle_index,id+1);
+ g_ptr_array_index(ts->state_trace_handle_index,id) = new_trace->state;
+
return new_trace;
}
s = g_new(LttvTraceset, 1);
s->filename = NULL;
s->traces = g_ptr_array_new();
+ s->state_trace_handle_index = g_ptr_array_new();
for(i=0;i<s_orig->traces->len;i++)
{
trace = g_ptr_array_index(s_orig->traces, i);
/* WARNING: this is an alias, not a copy. */
g_ptr_array_add(s->traces, trace);
+
+ g_ptr_array_set_size(s->state_trace_handle_index,trace->id+1);
+ g_ptr_array_index(s->state_trace_handle_index,trace->id) = trace->state;
+
}
s->context = s_orig->context;
bt_context_get(s->context);
LttvTracesetPosition *lttv_traceset_create_position(LttvTraceset *traceset)
{
-#warning "TODO"
- return NULL;
+ LttvTracesetPosition *traceset_pos;
+
+ traceset_pos = g_new(LttvTracesetPosition, 1);
+
+ /* Check in the new passed */
+ if(traceset_pos == NULL) {
+ return NULL;
+ }
+
+ traceset_pos->iter = traceset->iter;
+ traceset_pos->bt_pos = bt_iter_get_pos(bt_ctf_get_iter(traceset->iter));
+
+ return traceset_pos;
}
void lttv_traceset_destroy_position(LttvTracesetPosition *traceset_pos)
{
-#warning "TODO"
- return NULL;
+ bt_iter_free_pos(traceset_pos->bt_pos);
+ g_free(traceset_pos);
}
void lttv_traceset_seek_to_position(LttvTracesetPosition *traceset_pos)
{
-#warning "TODO"
+ bt_iter_set_pos(traceset_pos->iter, traceset_pos->bt_pos);
}
guint lttv_traceset_get_cpuid_from_event(LttvEvent *event)