int ret;
struct bt_ctf_stream_class *stream_class = NULL;
- if (!name || !strlen(name) || bt_ctf_validate_identifier(name)) {
+ if (name && bt_ctf_validate_identifier(name)) {
goto error;
}
return name;
}
+int bt_ctf_stream_class_set_name(struct bt_ctf_stream_class *stream_class,
+ const char *name)
+{
+ int ret = 0;
+
+ if (!stream_class || stream_class->frozen) {
+ ret = -1;
+ goto end;
+ }
+
+ g_string_assign(stream_class->name, name);
+end:
+ return ret;
+}
+
struct bt_ctf_clock *bt_ctf_stream_class_get_clock(
struct bt_ctf_stream_class *stream_class)
{
int fd;
GString *filename = g_string_new(stream->stream_class->name->str);
+ if (stream->stream_class->name->len == 0) {
+ int64_t ret;
+
+ ret = bt_ctf_stream_class_get_id(stream->stream_class);
+ if (ret < 0) {
+ fd = -1;
+ goto error;
+ }
+
+ g_string_printf(filename, "stream_%" PRId64, ret);
+ }
+
g_string_append_printf(filename, "_%" PRIu32, stream->id);
fd = openat(writer->trace_dir_fd, filename->str,
O_RDWR | O_CREAT | O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
+error:
g_string_free(filename, TRUE);
return fd;
}
* - uint32_t id
* - uint64_t timestamp
*
- * @param name Stream name.
+ * @param name Stream name, NULL to create an unnamed stream class.
*
* Returns an allocated stream class on success, NULL on error.
*/
extern const char *bt_ctf_stream_class_get_name(
struct bt_ctf_stream_class *stream_class);
+/*
+ * bt_ctf_stream_class_set_name: Set a stream class' name.
+ *
+ * @param stream_class Stream class.
+ *
+ * Returns 0 on success, a negative value on error.
+ */
+extern int bt_ctf_stream_class_set_name(
+ struct bt_ctf_stream_class *stream_class, const char *name);
+
/*
* bt_ctf_stream_class_get_clock: get the clock associated with a stream class.
*