bt_self_component_source_as_self_component(component)));
}
-gchar *ctf_fs_make_port_name(struct ctf_fs_ds_file_group *ds_file_group)
+bt2c::GCharUP ctf_fs_make_port_name(struct ctf_fs_ds_file_group *ds_file_group)
{
GString *name = g_string_new(NULL);
g_string_append_printf(name, " | %s", ds_file_info->path->str);
}
- return g_string_free(name, FALSE);
+ return bt2c::GCharUP {g_string_free(name, FALSE)};
}
static int create_one_port_for_trace(struct ctf_fs_component *ctf_fs,
{
int ret = 0;
struct ctf_fs_port_data *port_data = NULL;
- gchar *port_name;
- port_name = ctf_fs_make_port_name(ds_file_group);
+ bt2c::GCharUP port_name = ctf_fs_make_port_name(ds_file_group);
if (!port_name) {
goto error;
}
- BT_CPPLOGI_SPEC(ctf_fs->logger, "Creating one port named `{}`", port_name);
+ BT_CPPLOGI_SPEC(ctf_fs->logger, "Creating one port named `{}`", port_name.get());
/* Create output port for this file */
port_data = new ctf_fs_port_data;
port_data->ctf_fs = ctf_fs;
port_data->ds_file_group = ds_file_group;
- ret = bt_self_component_source_add_output_port(self_comp_src, port_name, port_data, NULL);
+ ret = bt_self_component_source_add_output_port(self_comp_src, port_name.get(), port_data, NULL);
if (ret) {
goto error;
}
ret = -1;
end:
- g_free(port_name);
-
port_data_destroy(port_data);
return ret;
}
goto error;
}
- if (ds_file_group->sc->ir_sc) {
- BT_ASSERT(ctf_fs_trace->trace);
-
- if (ds_file_group->stream_id == UINT64_C(-1)) {
- /* No stream ID: use 0 */
- ds_file_group->stream = bt_stream_create_with_id(
- ds_file_group->sc->ir_sc, ctf_fs_trace->trace, ctf_fs_trace->next_stream_id);
- ctf_fs_trace->next_stream_id++;
- } else {
- /* Specific stream ID */
- ds_file_group->stream =
- bt_stream_create_with_id(ds_file_group->sc->ir_sc, ctf_fs_trace->trace,
- (uint64_t) ds_file_group->stream_id);
- }
+ BT_ASSERT(ds_file_group->sc->ir_sc);
+ BT_ASSERT(ctf_fs_trace->trace);
+
+ if (ds_file_group->stream_id == UINT64_C(-1)) {
+ /* No stream ID: use 0 */
+ ds_file_group->stream = bt_stream_create_with_id(
+ ds_file_group->sc->ir_sc, ctf_fs_trace->trace, ctf_fs_trace->next_stream_id);
+ ctf_fs_trace->next_stream_id++;
} else {
- ds_file_group->stream = NULL;
+ /* Specific stream ID */
+ ds_file_group->stream = bt_stream_create_with_id(
+ ds_file_group->sc->ir_sc, ctf_fs_trace->trace, (uint64_t) ds_file_group->stream_id);
}
if (!ds_file_group->stream) {
const bt_value **result)
{
try {
- bt_component_class_query_method_status status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
bt2c::Logger logger {bt2::SelfComponentClass {comp_class_src},
bt2::PrivateQueryExecutor {priv_query_exec},
"PLUGIN/SRC.CTF.FS/QUERY"};
+ bt2::ConstMapValue paramsObj(params);
+ bt2::Value::Shared resultObj;
if (strcmp(object, "metadata-info") == 0) {
- status = metadata_info_query(params, logger, result);
+ resultObj = metadata_info_query(paramsObj, logger);
} else if (strcmp(object, "babeltrace.trace-infos") == 0) {
- status = trace_infos_query(params, logger, result);
+ resultObj = trace_infos_query(paramsObj, logger);
} else if (!strcmp(object, "babeltrace.support-info")) {
- status = support_info_query(params, logger, result);
+ resultObj = support_info_query(paramsObj, logger);
} else {
BT_CPPLOGE_SPEC(logger, "Unknown query object `{}`", object);
- status = BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_UNKNOWN_OBJECT;
- goto end;
+ return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_UNKNOWN_OBJECT;
}
-end:
- return status;
+
+ *result = resultObj.release().libObjPtr();
+
+ return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_OK;
} catch (const std::bad_alloc&) {
return BT_COMPONENT_CLASS_QUERY_METHOD_STATUS_MEMORY_ERROR;
} catch (const bt2::Error&) {