X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=plugins%2Fctf%2Ffs-src%2Ffs.h;h=1ee4a6821e91bef0da3ca5f3c2fad15b11bd6f1b;hb=fbea9a539c88e075c1a11fd727f9c5a6ed536856;hp=c72be5e03dd3000b065ef1521384be843d7a5cfc;hpb=61f59358b7c2acd4e21e86b7362a2fad21374b8a;p=deliverable%2Fbabeltrace.git diff --git a/plugins/ctf/fs-src/fs.h b/plugins/ctf/fs-src/fs.h index c72be5e03..1ee4a6821 100644 --- a/plugins/ctf/fs-src/fs.h +++ b/plugins/ctf/fs-src/fs.h @@ -53,7 +53,7 @@ struct ctf_fs_metadata { struct ctf_metadata_decoder *decoder; /* Owned by this */ - struct bt_trace *trace; + bt_trace_class *trace_class; /* Weak (owned by `decoder` above) */ struct ctf_trace_class *tc; @@ -63,14 +63,12 @@ struct ctf_fs_metadata { /* Owned by this */ char *text; - uint8_t uuid[16]; - bool is_uuid_set; int bo; }; struct ctf_fs_component { /* Weak, guaranteed to exist */ - struct bt_private_component *priv_comp; + bt_self_component_source *self_comp; /* Array of struct ctf_fs_port_data *, owned by this */ GPtrArray *port_data; @@ -85,6 +83,9 @@ struct ctf_fs_trace { /* Owned by this */ struct ctf_fs_metadata *metadata; + /* Owned by this */ + bt_trace *trace; + /* Array of struct ctf_fs_ds_file_group *, owned by this */ GPtrArray *ds_file_groups; @@ -106,15 +107,15 @@ struct ctf_fs_ds_file_group { * belong to this group (a single stream instance). * * You can call ctf_fs_ds_file_create() with one of those paths - * and the CTF IR stream below. + * and the trace IR stream below. */ GPtrArray *ds_file_infos; /* Owned by this */ - struct bt_stream_class *stream_class; + struct ctf_stream_class *sc; /* Owned by this */ - struct bt_stream *stream; + bt_stream *stream; /* Stream (instance) ID; -1ULL means none */ uint64_t stream_id; @@ -131,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 */ - struct bt_private_connection_private_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; @@ -145,49 +146,68 @@ 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_BEGIN notifications */ - bool skip_stream_begin_notifs; + struct bt_msg_iter *msg_iter; }; BT_HIDDEN -enum bt_component_status ctf_fs_init(struct bt_private_component *source, - struct bt_value *params, void *init_method_data); +bt_self_component_status ctf_fs_init( + bt_self_component_source *source, + const bt_value *params, void *init_method_data); BT_HIDDEN -void ctf_fs_finalize(struct bt_private_component *component); +void ctf_fs_finalize(bt_self_component_source *component); BT_HIDDEN -struct bt_component_class_query_method_return ctf_fs_query( - struct bt_component_class *comp_class, - struct bt_query_executor *query_exec, - const char *object, struct bt_value *params); +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, struct bt_graph *graph); +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 +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 -GList *ctf_fs_create_trace_names(GList *trace_paths, const char *base_path); +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 -enum bt_notification_iterator_status ctf_fs_iterator_init( - struct bt_private_connection_private_notification_iterator *it, - struct bt_private_port *port); +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 -void ctf_fs_iterator_finalize(struct bt_private_connection_private_notification_iterator *it); +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 -enum bt_notification_iterator_status ctf_fs_iterator_next( - struct bt_private_connection_private_notification_iterator *iterator, - bt_notification_array notifs, uint64_t capacity, - uint64_t *count); +bool validate_paths_parameter(const bt_value *paths); #endif /* BABELTRACE_PLUGIN_CTF_FS_H */