Fix open_mmap_trace missing support
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 17 Feb 2012 20:03:59 +0000 (15:03 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 17 Feb 2012 20:03:59 +0000 (15:03 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
converter/babeltrace.c
include/babeltrace/context.h
lib/context.c

index baffb195242889211a4d32eb6fd55d049352c474..6905070a25a062ed50aff09fc54537fb302b64dd 100644 (file)
@@ -378,7 +378,7 @@ int bt_context_add_traces_recursive(struct bt_context *ctx, const char *path,
 
                        trace_id = bt_context_add_trace(ctx,
                                node->fts_accpath, format_str,
-                               packet_seek);
+                               packet_seek, NULL, NULL);
                        if (trace_id < 0) {
                                fprintf(stderr, "[error] [Context] opening trace \"%s\" from %s "
                                        "for reading.\n", node->fts_accpath, path);
index ba42dbd036b3ac9b78b36c819d4407dac8a2aba4..4ad1797134e890e82b66e531e165f696f61286b6 100644 (file)
@@ -24,6 +24,7 @@
  */
 
 #include <unistd.h>
+#include <babeltrace/format.h>
 
 /* struct bt_context is opaque to the user */
 struct bt_context;
@@ -51,13 +52,20 @@ struct bt_context *bt_context_create(void);
  * and a "whence" parameter (either SEEK_CUR: seek to next packet, or
  * SEEK_SET: seek to packet at packet index).
  *
+ * If "path" is NULL, stream_list is used instread as a list of streams
+ * to open for the trace.
+
+ * The metadata parameter acts as a metadata override when not NULL.
+ *
  * Return: the trace handle id (>= 0) on success, a negative
  * value on error.
  */
 int bt_context_add_trace(struct bt_context *ctx, const char *path,
                const char *format,
                void (*packet_seek)(struct stream_pos *pos,
-                       size_t index, int whence));
+                       size_t index, int whence),
+               struct mmap_stream_list *stream_list,
+               FILE *metadata);
 
 /*
  * bt_context_remove_trace: Remove a trace from the context.
index 1311b5c2a0e684e81d51fb2adf688e3db66bf5d4..0c20ed53de6b247ff996a85e0c49ca9b91fd0793 100644 (file)
@@ -59,7 +59,9 @@ struct bt_context *bt_context_create(void)
 int bt_context_add_trace(struct bt_context *ctx, const char *path,
                const char *format_name,
                void (*packet_seek)(struct stream_pos *pos, size_t index,
-                       int whence))
+                       int whence),
+               struct mmap_stream_list *stream_list,
+               FILE *metadata)
 {
        struct trace_descriptor *td;
        struct format *fmt;
@@ -73,12 +75,22 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path,
                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);
-               ret = -1;
-               goto end;
+       if (path) {
+               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);
+                       ret = -1;
+                       goto end;
+               }
+       } else {
+               td = fmt->open_mmap_trace(stream_list, packet_seek, metadata);
+               if (!td) {
+                       fprintf(stderr, "[error] [Context] Cannot open_trace of the format %s .\n\n",
+                                       path);
+                       ret = -1;
+                       goto end;
+               }
        }
 
        /* Create an handle for the trace */
This page took 0.035708 seconds and 4 git commands to generate.