enum bt_component_status ret;
snprintf(trace_name, PATH_MAX, "%s/%s_%03d",
- writer_component->base_path,
- writer_component->trace_name_base,
+ writer_component->base_path->str,
+ writer_component->trace_name_base->str,
writer_component->trace_id++);
printf_verbose("CTF-Writer creating trace in %s\n", trace_name);
-
+
ctf_writer = bt_ctf_writer_create(trace_name);
if (!ctf_writer) {
fprintf(writer_component->err, "[error] %s in %s:%d\n",
__FILE__, __LINE__);
goto end_put_event_class;
}
-// printf("%s\n", event_name);
stream = bt_ctf_event_get_stream(event);
if (!stream) {
g_hash_table_destroy(writer_component->stream_map);
g_hash_table_destroy(writer_component->stream_class_map);
g_hash_table_destroy(writer_component->trace_map);
+ g_string_free(writer_component->base_path, true);
+ g_string_free(writer_component->trace_name_base, true);
}
static
writer_component->err = stderr;
writer_component->trace_id = 0;
- snprintf(writer_component->trace_name_base, NAME_MAX, "trace");
+ writer_component->trace_name_base = g_string_new("trace");
+ if (!writer_component->trace_name_base) {
+ g_free(writer_component);
+ writer_component = NULL;
+ goto end;
+ }
/*
* Reader to writer corresponding structures.
goto error;
}
- strncpy(writer_component->base_path, path, PATH_MAX);
+ writer_component->base_path = g_string_new(path);
+ if (!writer_component) {
+ ret = BT_COMPONENT_STATUS_ERROR;
+ goto error;
+ }
ret = bt_component_set_destroy_cb(component,
destroy_writer_component);
#include <babeltrace/ctf-writer/writer.h>
struct writer_component {
- char base_path[PATH_MAX];
- char trace_name_base[NAME_MAX];
+ GString *base_path;
+ GString *trace_name_base;
/* For the directory name suffix. */
int trace_id;
/* Map between struct bt_ctf_trace and struct bt_ctf_writer. */