cli, plugins/ctf/fs-src: Make src.ctf.fs accept multiple root paths
[deliverable/babeltrace.git] / plugins / ctf / fs-src / fs.h
index 1660169389e582b58ad290d01a125303e1aeffe0..1ee4a6821e91bef0da3ca5f3c2fad15b11bd6f1b 100644 (file)
@@ -63,8 +63,6 @@ struct ctf_fs_metadata {
        /* Owned by this */
        char *text;
 
-       uint8_t uuid[16];
-       bool is_uuid_set;
        int bo;
 };
 
@@ -114,7 +112,7 @@ struct ctf_fs_ds_file_group {
        GPtrArray *ds_file_infos;
 
        /* Owned by this */
-       bt_stream_class *stream_class;
+       struct ctf_stream_class *sc;
 
        /* Owned by this */
        bt_stream *stream;
@@ -134,9 +132,9 @@ struct ctf_fs_port_data {
        struct ctf_fs_component *ctf_fs;
 };
 
-struct ctf_fs_notif_iter_data {
+struct ctf_fs_msg_iter_data {
        /* Weak */
-       bt_self_notification_iterator *pc_notif_iter;
+       bt_self_message_iterator *pc_msg_iter;
 
        /* Weak, belongs to ctf_fs_trace */
        struct ctf_fs_ds_file_group *ds_file_group;
@@ -148,14 +146,11 @@ struct ctf_fs_notif_iter_data {
        size_t ds_file_info_index;
 
        /* Owned by this */
-       struct bt_notif_iter *notif_iter;
-
-       /* True to skip BT_NOTIFICATION_TYPE_STREAM_BEGINNING notifications */
-       bool skip_stream_begin_notifs;
+       struct bt_msg_iter *msg_iter;
 };
 
 BT_HIDDEN
-enum bt_self_component_status ctf_fs_init(
+bt_self_component_status ctf_fs_init(
                bt_self_component_source *source,
                const bt_value *params, void *init_method_data);
 
@@ -163,38 +158,56 @@ BT_HIDDEN
 void ctf_fs_finalize(bt_self_component_source *component);
 
 BT_HIDDEN
-enum bt_query_status ctf_fs_query(
+bt_query_status ctf_fs_query(
                bt_self_component_class_source *comp_class,
                const bt_query_executor *query_exec,
                const char *object, const bt_value *params,
                const bt_value **result);
 
 BT_HIDDEN
-struct ctf_fs_trace *ctf_fs_trace_create(const char *path, const char *name,
-               struct ctf_fs_metadata_config *config);
+bt_self_message_iterator_status ctf_fs_iterator_init(
+               bt_self_message_iterator *self_msg_iter,
+               bt_self_component_source *self_comp,
+               bt_self_component_port_output *self_port);
 
 BT_HIDDEN
-void ctf_fs_trace_destroy(struct ctf_fs_trace *trace);
+void ctf_fs_iterator_finalize(bt_self_message_iterator *it);
 
 BT_HIDDEN
-int ctf_fs_find_traces(GList **trace_paths, const char *start_path);
+bt_self_message_iterator_status ctf_fs_iterator_next(
+               bt_self_message_iterator *iterator,
+               bt_message_array_const msgs, uint64_t capacity,
+               uint64_t *count);
 
 BT_HIDDEN
-GList *ctf_fs_create_trace_names(GList *trace_paths, const char *base_path);
+bt_self_message_iterator_status ctf_fs_iterator_seek_beginning(
+               bt_self_message_iterator *message_iterator);
+
+/* Create and initialize a new, empty ctf_fs_component. */
 
 BT_HIDDEN
-enum bt_self_notification_iterator_status ctf_fs_iterator_init(
-               bt_self_notification_iterator *self_notif_iter,
-               bt_self_component_source *self_comp,
-               bt_self_component_port_output *self_port);
+struct ctf_fs_component *ctf_fs_component_create(void);
+
+/*
+ * Search recursively under all paths in `paths_value` (an array of strings),
+ * for CTF traces. For each CTF trace found, create a ctf_fs_trace in
+ * `ctf_fs` representing that trace.
+ */
 
 BT_HIDDEN
-void ctf_fs_iterator_finalize(bt_self_notification_iterator *it);
+int ctf_fs_component_create_ctf_fs_traces(bt_self_component_source *self_comp,
+               struct ctf_fs_component *ctf_fs,
+               const bt_value *paths_value);
+
+/* Free `ctf_fs` and everything it owns. */
 
 BT_HIDDEN
-enum bt_self_notification_iterator_status ctf_fs_iterator_next(
-               bt_self_notification_iterator *iterator,
-               bt_notification_array_const notifs, uint64_t capacity,
-               uint64_t *count);
+void ctf_fs_destroy(struct ctf_fs_component *ctf_fs);
+
+/* Validate the "paths" parameter passed to this component.  It must be
+   present, and it must be an array of strings. */
+
+BT_HIDDEN
+bool validate_paths_parameter(const bt_value *paths);
 
 #endif /* BABELTRACE_PLUGIN_CTF_FS_H */
This page took 0.03201 seconds and 5 git commands to generate.