Change-Id: I9938c37f4effca7e83ed2e495feb5dd596d2320e
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8281
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/12319
Tested-by: jenkins <jenkins@lttng.org>
- if (ctf_fs_trace->path) {
- g_string_free(ctf_fs_trace->path, TRUE);
- }
-
if (ctf_fs_trace->metadata) {
ctf_fs_metadata_fini(ctf_fs_trace->metadata);
delete ctf_fs_trace->metadata;
if (ctf_fs_trace->metadata) {
ctf_fs_metadata_fini(ctf_fs_trace->metadata);
delete ctf_fs_trace->metadata;
bt_uuid_to_str(ds_file_group->ctf_fs_trace->metadata->tc->uuid, uuid_str);
g_string_assign(name, uuid_str);
} else {
bt_uuid_to_str(ds_file_group->ctf_fs_trace->metadata->tc->uuid, uuid_str);
g_string_assign(name, uuid_str);
} else {
- g_string_assign(name, ds_file_group->ctf_fs_trace->path->str);
+ g_string_assign(name, ds_file_group->ctf_fs_trace->path.c_str());
GDir *dir = NULL;
/* Check each file in the path directory, except specific ones */
GDir *dir = NULL;
/* Check each file in the path directory, except specific ones */
- dir = g_dir_open(ctf_fs_trace->path->str, 0, &error);
+ dir = g_dir_open(ctf_fs_trace->path.c_str(), 0, &error);
if (!dir) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger,
if (!dir) {
BT_CPPLOGE_APPEND_CAUSE_SPEC(ctf_fs_trace->logger,
- "Cannot open directory `{}`: {} (code {})",
- ctf_fs_trace->path->str, error->message, error->code);
+ "Cannot open directory `{}`: {} (code {})", ctf_fs_trace->path,
+ error->message, error->code);
/* Ignore the metadata stream. */
BT_CPPLOGI_SPEC(ctf_fs_trace->logger,
"Ignoring metadata file `{}" G_DIR_SEPARATOR_S "{}`",
/* Ignore the metadata stream. */
BT_CPPLOGI_SPEC(ctf_fs_trace->logger,
"Ignoring metadata file `{}" G_DIR_SEPARATOR_S "{}`",
- ctf_fs_trace->path->str, basename);
+ ctf_fs_trace->path, basename);
continue;
}
if (basename[0] == '.') {
BT_CPPLOGI_SPEC(ctf_fs_trace->logger,
continue;
}
if (basename[0] == '.') {
BT_CPPLOGI_SPEC(ctf_fs_trace->logger,
- "Ignoring hidden file `{}" G_DIR_SEPARATOR_S "{}`",
- ctf_fs_trace->path->str, basename);
+ "Ignoring hidden file `{}" G_DIR_SEPARATOR_S "{}`", ctf_fs_trace->path,
+ basename);
BT_CPPLOGE_APPEND_CAUSE_SPEC(
ctf_fs_trace->logger,
"Cannot create stream file object for file `{}" G_DIR_SEPARATOR_S "{}`",
BT_CPPLOGE_APPEND_CAUSE_SPEC(
ctf_fs_trace->logger,
"Cannot create stream file object for file `{}" G_DIR_SEPARATOR_S "{}`",
- ctf_fs_trace->path->str, basename);
+ ctf_fs_trace->path, basename);
goto error;
}
/* Create full path string. */
goto error;
}
/* Create full path string. */
- file->path = fmt::format("{}" G_DIR_SEPARATOR_S "{}", ctf_fs_trace->path->str, basename);
+ file->path = fmt::format("{}" G_DIR_SEPARATOR_S "{}", ctf_fs_trace->path, basename);
if (!g_file_test(file->path.c_str(), G_FILE_TEST_IS_REGULAR)) {
BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring non-regular file `{}`", file->path);
if (!g_file_test(file->path.c_str(), G_FILE_TEST_IS_REGULAR)) {
BT_CPPLOGI_SPEC(ctf_fs_trace->logger, "Ignoring non-regular file `{}`", file->path);
const bt2c::Logger& parentLogger)
{
int ret;
const bt2c::Logger& parentLogger)
{
int ret;
ctf_fs_trace::UP ctf_fs_trace {new struct ctf_fs_trace(parentLogger)};
ctf_fs_trace::UP ctf_fs_trace {new struct ctf_fs_trace(parentLogger)};
- ctf_fs_trace->path = g_string_new(path);
- if (!ctf_fs_trace->path) {
- goto error;
- }
+ ctf_fs_trace->path = path;
ctf_fs_trace->metadata = new ctf_fs_metadata;
ctf_fs_metadata_init(ctf_fs_trace->metadata);
ctf_fs_trace->metadata = new ctf_fs_metadata;
ctf_fs_metadata_init(ctf_fs_trace->metadata);
BT_CPPLOGE_APPEND_CAUSE_SPEC(
ctf_fs->logger,
"Multiple traces given, but a trace does not have a UUID: path={}",
BT_CPPLOGE_APPEND_CAUSE_SPEC(
ctf_fs->logger,
"Multiple traces given, but a trace does not have a UUID: path={}",
- this_trace->path->str);
"Multiple traces given, but UUIDs don't match: "
"first-trace-uuid={}, first-trace-path={}, "
"trace-uuid={}, trace-path={}",
"Multiple traces given, but UUIDs don't match: "
"first-trace-uuid={}, first-trace-path={}, "
"trace-uuid={}, trace-path={}",
- first_trace_uuid_str, first_trace->path->str,
- this_trace_uuid_str, this_trace->path->str);
+ first_trace_uuid_str, first_trace->path,
+ this_trace_uuid_str, this_trace->path);
std::vector<ctf_fs_ds_file_group::UP> ds_file_groups;
std::vector<ctf_fs_ds_file_group::UP> ds_file_groups;
- /* Owned by this */
- GString *path = nullptr;
/* Next automatic stream ID when not provided by packet header */
uint64_t next_stream_id = 0;
/* Next automatic stream ID when not provided by packet header */
uint64_t next_stream_id = 0;
-static ctf_fs_file::UP get_file(const char *trace_path, const bt2c::Logger& logger)
+static ctf_fs_file::UP get_file(const bt2c::CStringView trace_path, const bt2c::Logger& logger)
{
auto file = ctf_fs_file_create(logger);
{
auto file = ctf_fs_file_create(logger);
decoder_config.clkClsCfg = clkClsCfg;
decoder_config.create_trace_class = true;
decoder_config.clkClsCfg = clkClsCfg;
decoder_config.create_trace_class = true;
- const auto file = get_file(ctf_fs_trace->path->str, ctf_fs_trace->logger);
+ const auto file = get_file(ctf_fs_trace->path, ctf_fs_trace->logger);
if (!file) {
BT_CPPLOGE_SPEC(ctf_fs_trace->logger, "Cannot create metadata file object.");
ret = -1;
if (!file) {
BT_CPPLOGE_SPEC(ctf_fs_trace->logger, "Cannot create metadata file object.");
ret = -1;
{
/* Add trace range info only if it contains streams. */
if (trace->ds_file_groups.empty()) {
{
/* Add trace range info only if it contains streams. */
if (trace->ds_file_groups.empty()) {
- BT_CPPLOGE_APPEND_CAUSE_AND_THROW_SPEC(
- logger, bt2::Error, "Trace has no streams: trace-path={}", trace->path->str);
+ BT_CPPLOGE_APPEND_CAUSE_AND_THROW_SPEC(logger, bt2::Error,
+ "Trace has no streams: trace-path={}", trace->path);
}
const auto fileGroups = traceInfo.insertEmptyArray("stream-infos");
}
const auto fileGroups = traceInfo.insertEmptyArray("stream-infos");