ctf_fs_ds_file_destroy(notif_iter_data->ds_file);
notif_iter_data->ds_file = ctf_fs_ds_file_create(
notif_iter_data->ds_file_group->ctf_fs_trace,
+ notif_iter_data->graph,
notif_iter_data->notif_iter,
notif_iter_data->ds_file_group->stream,
ds_file_info->path->str);
goto error;
}
+ notif_iter_data->graph = bt_component_borrow_graph(
+ bt_component_borrow_from_private(port_data->ctf_fs->priv_comp));
notif_iter_data->notif_iter = bt_notif_iter_create(
port_data->ds_file_group->ctf_fs_trace->metadata->trace,
bt_common_get_page_size() * 8,
goto error;
}
+ port_data->ctf_fs = ctf_fs;
port_data->ds_file_group = ds_file_group;
ret = bt_private_component_source_add_output_private_port(
ctf_fs->priv_comp, port_name->str, port_data, NULL);
}
end:
- bt_put(stream_instance_id_field);
return stream_instance_id;
}
uint64_t timestamp_begin_ns = -1ULL;
int64_t timestamp_begin_ns_signed;
struct bt_clock_class *timestamp_begin_clock_class = NULL;
- struct bt_clock_value *clock_value = NULL;
if (!packet_context_field) {
goto end;
goto end;
}
- clock_value = bt_clock_value_create(timestamp_begin_clock_class,
- timestamp_begin_raw_value);
- if (!clock_value) {
- goto end;
- }
-
- ret = bt_clock_value_get_value_ns_from_epoch(clock_value,
- ×tamp_begin_ns_signed);
+ ret = bt_clock_class_cycles_to_ns(timestamp_begin_clock_class,
+ timestamp_begin_raw_value, ×tamp_begin_ns_signed);
if (ret) {
goto end;
}
timestamp_begin_ns = (uint64_t) timestamp_begin_ns_signed;
end:
- bt_put(clock_value);
return timestamp_begin_ns;
}
static
int add_ds_file_to_ds_file_group(struct ctf_fs_trace *ctf_fs_trace,
- const char *path)
+ struct bt_graph *graph, const char *path)
{
struct bt_field *packet_header_field = NULL;
struct bt_field *packet_context_field = NULL;
goto error;
}
- ds_file = ctf_fs_ds_file_create(ctf_fs_trace, notif_iter, NULL, path);
+ ds_file = ctf_fs_ds_file_create(ctf_fs_trace, graph, notif_iter,
+ NULL, path);
if (!ds_file) {
goto error;
}
- ret = ctf_fs_ds_file_get_packet_header_context_fields(ds_file,
+ ret = ctf_fs_ds_file_borrow_packet_header_context_fields(ds_file,
&packet_header_field, &packet_context_field);
if (ret) {
BT_LOGE("Cannot get stream file's first packet's header and context fields (`%s`).",
}
ctf_fs_ds_index_destroy(index);
- bt_put(packet_header_field);
- bt_put(packet_context_field);
return ret;
}
static
-int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace)
+int create_ds_file_groups(struct ctf_fs_trace *ctf_fs_trace,
+ struct bt_graph *graph)
{
int ret = 0;
const char *basename;
continue;
}
- ret = add_ds_file_to_ds_file_group(ctf_fs_trace,
+ ret = add_ds_file_to_ds_file_group(ctf_fs_trace, graph,
file->path->str);
if (ret) {
BT_LOGE("Cannot add stream file `%s` to stream file group",
BT_HIDDEN
struct ctf_fs_trace *ctf_fs_trace_create(const char *path, const char *name,
- struct ctf_fs_metadata_config *metadata_config)
+ struct ctf_fs_metadata_config *metadata_config,
+ struct bt_graph *graph)
{
struct ctf_fs_trace *ctf_fs_trace;
int ret;
goto error;
}
- ret = create_ds_file_groups(ctf_fs_trace);
+ ret = create_ds_file_groups(ctf_fs_trace, graph);
if (ret) {
goto error;
}
tn_node = g_list_next(tn_node)) {
GString *trace_path = tp_node->data;
GString *trace_name = tn_node->data;
+ struct bt_graph *graph = bt_component_borrow_graph(
+ bt_component_borrow_from_private(ctf_fs->priv_comp));
+ BT_ASSERT(graph);
ctf_fs_trace = ctf_fs_trace_create(trace_path->str,
- trace_name->str, &ctf_fs->metadata_config);
+ trace_name->str, &ctf_fs->metadata_config,
+ graph);
if (!ctf_fs_trace) {
BT_LOGE("Cannot create trace for `%s`.",
trace_path->str);