Init ctf fs data and metadata streams
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 5 Sep 2016 19:36:49 +0000 (15:36 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 27 May 2017 18:09:06 +0000 (14:09 -0400)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
include/babeltrace/plugin/notification/iterator-internal.h
include/babeltrace/plugin/notification/iterator.h
lib/plugin-system/iterator.c
plugins/ctf/fs/data-stream.c
plugins/ctf/fs/data-stream.h
plugins/ctf/fs/file.c
plugins/ctf/fs/fs.c
plugins/ctf/fs/fs.h
plugins/ctf/fs/metadata.c
plugins/ctf/fs/metadata.h

index dd6ba4507efda52c3eb814cbd122459e62381439..b56d86c70a4ebc9a6ffbf1fb4e720bfe2c31f4de 100644 (file)
@@ -33,6 +33,7 @@
 
 struct bt_notification_iterator {
        struct bt_object base;
+       struct bt_component *component;
        bt_notification_iterator_get_cb get;
        bt_notification_iterator_next_cb next;
        void *user_data;
index 7729cb5e723ff97cc3dc876e0752be2c705a9e2d..5558aa7f74c2dbde62831649b7f42222e601ba13 100644 (file)
@@ -119,6 +119,9 @@ extern enum bt_notification_iterator_status *bt_notification_iterator_seek(
                struct bt_notification_iterator *iterator, int whence,
                int64_t time);
 
+extern struct bt_component *bt_notification_iterator_get_component(
+               struct bt_notification_iterator *iterator);
+
 #ifdef __cplusplus
 }
 #endif
index 6a40ba70c176c27a0b72b33110dfbf9df8a005c2..06fea4aa85824f8294f7f36bf626bff956299d85 100644 (file)
@@ -45,6 +45,7 @@ void bt_notification_iterator_destroy(struct bt_object *obj)
        if (iterator->user_destroy) {
                iterator->user_destroy(iterator);
        }
+       BT_PUT(iterator->component);
        g_free(iterator);
 }
 
@@ -64,6 +65,7 @@ struct bt_notification_iterator *bt_notification_iterator_create(
                goto end;
        }
 
+       iterator->component = bt_get(component);
        bt_object_init(iterator, bt_notification_iterator_destroy);
 end:
        return iterator;
@@ -158,3 +160,10 @@ bt_notification_iterator_set_private_data(
 end:
        return ret;
 }
+
+struct bt_component *bt_notification_iterator_get_component(
+               struct bt_notification_iterator *iterator)
+{
+       return bt_get(iterator->component);
+}
+
index 6fba603af2fb72c01bd22fc7f25c21dc8190460a..b29c40a0d4c3d91995b462867ad29bd63f7fb6ab 100644 (file)
@@ -327,7 +327,7 @@ end:
        return ret;
 }
 
-void ctf_fs_data_stream_deinit(struct ctf_fs_data_stream *data_stream)
+void ctf_fs_data_stream_fini(struct ctf_fs_data_stream *data_stream)
 {
        g_ptr_array_free(data_stream->streams, TRUE);
 }
index d8f674662f4f8628d7e86b925aa8e8f0bdfbb5f4..60a46e16ff1e9a57a6c051cf2e2411cb2b69ee0f 100644 (file)
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/ctf-ir/trace.h>
 
-#include "ctf-notif-iter/ctf-notif-iter.h"
-
-struct ctf_fs_stream {
-       struct ctf_fs_file *file;
-       struct bt_ctf_stream *stream;
-       struct bt_ctf_notif_iter *notif_iter;
-       void *mmap_addr;
-       size_t mmap_len;
-       off_t mmap_offset;
-       off_t request_offset;
-};
-
-struct ctf_fs_data_stream {
-       GPtrArray *streams;
-};
+#include "../common/notif-iter/notif-iter.h"
 
 BT_HIDDEN
-int ctf_fs_data_stream_init(struct ctf_fs *ctf_fs,
+int ctf_fs_data_stream_init(struct ctf_fs_component *ctf_fs,
                struct ctf_fs_data_stream *data_stream);
 
 BT_HIDDEN
-void ctf_fs_data_stream_deinit(struct ctf_fs_data_stream *data_stream);
+void ctf_fs_data_stream_fini(struct ctf_fs_data_stream *data_stream);
 
 BT_HIDDEN
-int ctf_fs_data_stream_open_streams(struct ctf_fs *ctf_fs);
+int ctf_fs_data_stream_open_streams(struct ctf_fs_component *ctf_fs);
 
 BT_HIDDEN
 int ctf_fs_data_stream_get_next_notification(
-               struct ctf_fs *ctf_fs,
+               struct ctf_fs_component *ctf_fs,
                struct bt_ctf_notif_iter_notif **notification);
 
 #endif /* CTF_FS_DATA_STREAM_H */
index 1d31bcfc0784f12cffae9a51522ec7d2e0037b66..54b11a67013d2c16a0474c0a30c436873d7bd996 100644 (file)
@@ -89,7 +89,7 @@ int ctf_fs_file_open(struct ctf_fs_component *ctf_fs, struct ctf_fs_file *file,
        PDBG("Opening file \"%s\" with mode \"%s\"\n", file->path->str, mode);
        file->fp = fopen(file->path->str, mode);
        if (!file->fp) {
-               PERR("Cannot open file \"%s\" with mode \"%s\": %s",
+               PERR("Cannot open file \"%s\" with mode \"%s\": %s\n",
                        file->path->str, mode, strerror(errno));
                goto error;
        }
index 9019543eea6595268e81f0183eccd93b114bced4..6c7f2030b994a01c0a73a2b643916971c11b68b1 100644 (file)
@@ -32,6 +32,8 @@
 #include <assert.h>
 #include <unistd.h>
 #include "fs.h"
+#include "metadata.h"
+#include "data-stream.h"
 
 static bool ctf_fs_debug;
 
@@ -67,8 +69,8 @@ static
 enum bt_component_status ctf_fs_iterator_init(struct bt_component *source,
                struct bt_notification_iterator *it)
 {
-       enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
        struct ctf_fs_iterator *ctf_it;
+       enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
 
        assert(source && it);
        ctf_it = g_new0(struct ctf_fs_iterator, 1);
@@ -112,8 +114,8 @@ void ctf_fs_destroy_data(struct ctf_fs_component *component)
                g_string_free(component->trace_path, TRUE);
        }
 
-//     ctf_fs_metadata_fini(&component->metadata);
-//     ctf_fs_data_stream_fini(&component->data_stream);
+       ctf_fs_metadata_fini(&component->metadata);
+       ctf_fs_data_stream_fini(&component->data_stream);
        g_free(component);
 }
 
@@ -156,7 +158,9 @@ struct ctf_fs_component *ctf_fs_create(struct bt_value *params)
 
        ctf_fs->error_fp = stderr;
        ctf_fs->page_size = (size_t) getpagesize();
-
+       ctf_fs_data_stream_init(ctf_fs, &ctf_fs->data_stream);
+       ctf_fs_metadata_set_trace(ctf_fs);
+       ctf_fs_data_stream_open_streams(ctf_fs);
 end:
        return ctf_fs;
 error:
@@ -194,6 +198,7 @@ enum bt_component_status ctf_fs_init(struct bt_component *source,
        if (ret != BT_COMPONENT_STATUS_OK) {
                goto error;
        }
+
 end:
        return ret;
 error:
index ff97b7a252315b9fa29e2aacdf861ac7fa816ff3..7a67b48abddc021436168254a316098221a72d47 100644 (file)
@@ -78,6 +78,7 @@ struct ctf_fs_component {
        GString *trace_path;
        FILE *error_fp;
        size_t page_size;
+       struct bt_notification *last_notif;
        struct ctf_fs_metadata metadata;
        struct ctf_fs_data_stream data_stream;
        struct ctf_fs_component_options options;
index 967452f90df29aa5a686c710d2d91c83b148c988..382836801ebdd942d0926331b6c42e9ad20108d7 100644 (file)
@@ -393,7 +393,7 @@ int ctf_fs_metadata_init(struct ctf_fs_metadata *metadata)
        return 0;
 }
 
-void ctf_fs_metadata_deinit(struct ctf_fs_metadata *metadata)
+void ctf_fs_metadata_fini(struct ctf_fs_metadata *metadata)
 {
        if (metadata->text) {
                free(metadata->text);
index eeccf848249cbef407111bbc44fb96f6dab6b16d..7ed7f069296e554fc4de253e15c6e3a8a3de0621 100644 (file)
@@ -35,7 +35,7 @@ BT_HIDDEN
 int ctf_fs_metadata_init(struct ctf_fs_metadata *metadata);
 
 BT_HIDDEN
-void ctf_fs_metadata_deinit(struct ctf_fs_metadata *metadata);
+void ctf_fs_metadata_fini(struct ctf_fs_metadata *metadata);
 
 BT_HIDDEN
 void ctf_fs_metadata_set_trace(struct ctf_fs_component *ctf_fs);
This page took 0.03457 seconds and 4 git commands to generate.