#include <babeltrace/babeltrace.h>
#include "data-stream-file.h"
#include "metadata.h"
+#include "../common/metadata/decoder.h"
BT_HIDDEN
extern bool ctf_fs_debug;
struct ctf_fs_metadata {
/* Owned by this */
- struct bt_trace *trace;
+ struct ctf_metadata_decoder *decoder;
+
+ /* Owned by this */
+ bt_trace_class *trace_class;
+
+ /* Weak (owned by `decoder` above) */
+ struct ctf_trace_class *tc;
+
+ /* Owned by this */
/* Owned by this */
char *text;
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;
struct ctf_fs_metadata *metadata;
/* Owned by this */
- struct bt_clock_class_priority_map *cc_prio_map;
+ bt_trace *trace;
/* Array of struct ctf_fs_ds_file_group *, owned by this */
GPtrArray *ds_file_groups;
/* Owned by this */
GString *name;
+
+ /* Next automatic stream ID when not provided by packet header */
+ uint64_t next_stream_id;
};
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;
+ bt_stream_class *stream_class;
/* Owned by this */
- struct bt_stream *stream;
+ bt_stream *stream;
/* Stream (instance) ID; -1ULL means none */
uint64_t stream_id;
struct ctf_fs_port_data {
/* Weak, belongs to ctf_fs_trace */
struct ctf_fs_ds_file_group *ds_file_group;
+
+ /* Weak */
+ struct ctf_fs_component *ctf_fs;
};
struct ctf_fs_notif_iter_data {
+ /* Weak */
+ bt_self_notification_iterator *pc_notif_iter;
+
/* Weak, belongs to ctf_fs_trace */
struct ctf_fs_ds_file_group *ds_file_group;
/* Owned by this */
struct bt_notif_iter *notif_iter;
- /* True to skip BT_NOTIFICATION_TYPE_STREAM_BEGIN notifications */
+ /* True to skip BT_NOTIFICATION_TYPE_STREAM_BEGINNING notifications */
bool skip_stream_begin_notifs;
};
BT_HIDDEN
-enum bt_component_status ctf_fs_init(struct bt_private_component *source,
- struct bt_value *params, void *init_method_data);
+enum 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);
+enum 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,
GList *ctf_fs_create_trace_names(GList *trace_paths, const char *base_path);
BT_HIDDEN
-enum bt_notification_iterator_status ctf_fs_iterator_init(
- struct bt_private_connection_private_notification_iterator *it,
- struct bt_private_port *port);
+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);
+
BT_HIDDEN
-void ctf_fs_iterator_finalize(struct bt_private_connection_private_notification_iterator *it);
+void ctf_fs_iterator_finalize(bt_self_notification_iterator *it);
BT_HIDDEN
-struct bt_notification_iterator_next_method_return ctf_fs_iterator_next(
- struct bt_private_connection_private_notification_iterator *iterator);
+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);
#endif /* BABELTRACE_PLUGIN_CTF_FS_H */