bt_stream_class *ds_file_stream_class;
bt_stream *stream = NULL;
- ds_file_stream_class = bt_stream_borrow_class(ds_file->stream);
+ ds_file_stream_class = ds_file->stream->cls().libObjPtr();
if (stream_class != ds_file_stream_class) {
/*
goto end;
}
- stream = ds_file->stream;
+ stream = ds_file->stream->libObjPtr();
end:
return stream;
ctf_fs_ds_file_destroy(data->file);
/* Create the new file. */
- data->file = ctf_fs_ds_file_create(data->ds_file_group->ctf_fs_trace,
- data->ds_file_group->stream->libObjPtr(),
- index_entry->path, data->logger);
+ data->file =
+ ctf_fs_ds_file_create(data->ds_file_group->ctf_fs_trace, data->ds_file_group->stream,
+ index_entry->path, data->logger);
if (!data->file) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(data->logger, "failed to create ctf_fs_ds_file.");
status = CTF_MSG_ITER_MEDIUM_STATUS_ERROR;
goto end;
}
-struct ctf_fs_ds_file *ctf_fs_ds_file_create(struct ctf_fs_trace *ctf_fs_trace, bt_stream *stream,
- const char *path, const bt2c::Logger& parentLogger)
+struct ctf_fs_ds_file *ctf_fs_ds_file_create(struct ctf_fs_trace *ctf_fs_trace,
+ bt2::Stream::Shared stream, const char *path,
+ const bt2c::Logger& parentLogger)
{
int ret;
size_t offset_align;
goto error;
}
- ds_file->file = ctf_fs_file_create(parentLogger);
+ ds_file->file = ctf_fs_file_create(parentLogger).release();
if (!ds_file->file) {
goto error;
}
- ds_file->stream = stream;
- bt_stream_get_ref(ds_file->stream);
+ ds_file->stream = std::move(stream);
ds_file->metadata = ctf_fs_trace->metadata;
g_string_assign(ds_file->file->path, path);
ret = ctf_fs_file_open(ds_file->file, "rb");
return;
}
- bt_stream_put_ref(ds_file->stream);
(void) ds_file_munmap(ds_file);
if (ds_file->file) {
return ds_file_info;
}
-static void ctf_fs_ds_file_group_destroy(struct ctf_fs_ds_file_group *ds_file_group)
-{
- if (!ds_file_group) {
- return;
- }
-
- delete ds_file_group;
-}
-
-void ctf_fs_ds_file_group_deleter::operator()(ctf_fs_ds_file_group *group) noexcept
-{
- ctf_fs_ds_file_group_destroy(group);
-}
-
ctf_fs_ds_file_group::UP ctf_fs_ds_file_group_create(struct ctf_fs_trace *ctf_fs_trace,
struct ctf_stream_class *sc,
uint64_t stream_instance_id,