X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=lib%2Fcontext.c;h=5021d7add1c56ab92386e4f93cdd43c520509086;hp=90d77df88f6840af5a954616048f5fbc0f81c631;hb=613f532b047a23c6916e2c08707b09296edbfcb2;hpb=1059a2bfb89dfcdea336d7fdd5ef9bbdf552f3f2 diff --git a/lib/context.c b/lib/context.c index 90d77df8..5021d7ad 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 offset, 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);