X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fcontext.c;h=1311b5c2a0e684e81d51fb2adf688e3db66bf5d4;hp=90d77df88f6840af5a954616048f5fbc0f81c631;hb=634d474be8d4262f5a3e549cdb6891de239f4fe4;hpb=1059a2bfb89dfcdea336d7fdd5ef9bbdf552f3f2 diff --git a/lib/context.c b/lib/context.c index 90d77df8..1311b5c2 100644 --- a/lib/context.c +++ b/lib/context.c @@ -26,14 +26,14 @@ #include #include #include +#include #include +#include +#include #include #include /* For O_RDONLY */ -/* TODO ybrosseau: should be hidden in the CTF format */ -#include /* for ctf_move_pos_slow */ - #include struct bt_context *bt_context_create(void) @@ -57,16 +57,23 @@ struct bt_context *bt_context_create(void) } int bt_context_add_trace(struct bt_context *ctx, const char *path, - const char *format_str) + const char *format_name, + void (*packet_seek)(struct stream_pos *pos, size_t index, + int whence)) { struct trace_descriptor *td; struct format *fmt; struct bt_trace_handle *handle; int ret; - fmt = bt_lookup_format(g_quark_from_string(format_str)); - td = fmt->open_trace(path, O_RDONLY, - ctf_move_pos_slow, NULL); + fmt = bt_lookup_format(g_quark_from_string(format_name)); + if (!fmt) { + fprintf(stderr, "[error] [Context] Format \"%s\" unknown.\n\n", + format_name); + ret = -1; + goto end; + } + td = fmt->open_trace(path, O_RDONLY, packet_seek, NULL); if (!td) { fprintf(stderr, "[error] [Context] Cannot open_trace of the format %s .\n\n", path);