X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=converter%2Fbabeltrace-lib.c;h=3797508155831cf84847cd4ec2d346c94ce70f88;hp=e08c0ada0c0a87c4ac9dd40916f088cd1785b30d;hb=063f70486d49320f996630ae2522bc9a2341f882;hpb=d2d71d7cf3a7108fad0a2ec8becfa8d99098fc51 diff --git a/converter/babeltrace-lib.c b/converter/babeltrace-lib.c index e08c0ada..37975081 100644 --- a/converter/babeltrace-lib.c +++ b/converter/babeltrace-lib.c @@ -33,6 +33,21 @@ #include #include +struct stream_saved_pos { + /* + * Use file_stream pointer to check if the trace collection we + * restore to match the one we saved from, for each stream. + */ + struct ctf_file_stream *file_stream; + size_t cur_index; /* current index in packet index */ + ssize_t offset; /* offset from base, in bits. EOF for end of file. */ +}; + +struct babeltrace_saved_pos { + struct trace_collection *tc; + GArray *stream_saved_pos; /* Contains struct stream_saved_pos */ +}; + /* * struct babeltrace_iter: data structure representing an iterator on a trace * collection. @@ -40,6 +55,7 @@ struct babeltrace_iter { struct ptr_heap *stream_heap; struct trace_collection *tc; + struct trace_collection_pos *end_pos; }; static int stream_read_event(struct ctf_file_stream *sin) @@ -69,7 +85,10 @@ int stream_compare(void *a, void *b) return 0; } -struct babeltrace_iter *babeltrace_iter_create(struct trace_collection *tc) +/* TODO: use begin_pos/end_pos */ +struct babeltrace_iter *babeltrace_iter_create(struct trace_collection *tc, + struct trace_collection_pos *begin_pos, + struct trace_collection_pos *end_pos) { int i, stream_id; int ret = 0; @@ -201,7 +220,7 @@ int convert_trace(struct trace_descriptor *td_write, sout = container_of(td_write, struct ctf_text_stream_pos, trace_descriptor); - iter = babeltrace_iter_create(trace_collection_read); + iter = babeltrace_iter_create(trace_collection_read, NULL, NULL); while (babeltrace_iter_read_event(iter, &stream, &event) == 0) { ret = sout->parent.event_cb(&sout->parent, stream); if (ret) {