Fix: lib: expose bt_lib_log_level symbol
[babeltrace.git] / cli / babeltrace.c
index 3dc37e19723a73dcb1b5962cc890fe244a98793d..913a74216c2d600d15a916e2ad3ae16d6059844d 100644 (file)
 static const char* log_level_env_var_names[] = {
        "BABELTRACE_COMMON_LOG_LEVEL",
        "BABELTRACE_COMPAT_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTF_BTR_LOG_LEVEL",
-       "BABELTRACE_SINK_CTF_FS_LOG_LEVEL",
-       "BABELTRACE_SRC_CTF_FS_LOG_LEVEL",
-       "BABELTRACE_SRC_CTF_LTTNG_LIVE_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTF_METADATA_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTF_NOTIF_ITER_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTFCOPYTRACE_LIB_LOG_LEVEL",
+       "BABELTRACE_CTFSER_LOG_LEVEL",
+       "BABELTRACE_FD_CACHE_LOG_LEVEL",
        "BABELTRACE_FLT_LTTNG_UTILS_DEBUG_INFO_LOG_LEVEL",
-       "BABELTRACE_SRC_TEXT_DMESG_LOG_LEVEL",
-       "BABELTRACE_SINK_TEXT_PRETTY_LOG_LEVEL",
+       "BABELTRACE_FLT_UTILS_COUNTER_LOG_LEVEL",
        "BABELTRACE_FLT_UTILS_MUXER_LOG_LEVEL",
        "BABELTRACE_FLT_UTILS_TRIMMER_LOG_LEVEL",
+       "BABELTRACE_PLUGIN_CTF_BFCR_LOG_LEVEL",
+       "BABELTRACE_PLUGIN_CTF_METADATA_LOG_LEVEL",
+       "BABELTRACE_PLUGIN_CTF_MSG_ITER_LOG_LEVEL",
+       "BABELTRACE_PLUGIN_CTF_UTILS_LOG_LEVEL",
        "BABELTRACE_PYTHON_BT2_LOG_LEVEL",
-       "BABELTRACE_PYTHON_PLUGIN_PROVIDER_LOG_LEVEL",
+       "BABELTRACE_SINK_CTF_FS_LOG_LEVEL",
+       "BABELTRACE_SINK_TEXT_PRETTY_LOG_LEVEL",
+       "BABELTRACE_SRC_CTF_FS_LOG_LEVEL",
+       "BABELTRACE_SRC_CTF_LTTNG_LIVE_LOG_LEVEL",
+       "BABELTRACE_SRC_TEXT_DMESG_LOG_LEVEL",
        NULL,
 };
 
 /* Application's processing graph (weak) */
-static struct bt_graph *the_graph;
-static struct bt_query_executor *the_query_executor;
+static bt_graph *the_graph;
+static bt_query_executor *the_query_executor;
 static bool canceled = false;
 
 GPtrArray *loaded_plugins;
@@ -169,12 +171,12 @@ void destroy_the_query_executor(void)
 }
 
 static
-int query(const struct bt_component_class *comp_cls, const char *obj,
-               const struct bt_value *params, const struct bt_value **user_result,
+int query(const bt_component_class *comp_cls, const char *obj,
+               const bt_value *params, const bt_value **user_result,
                const char **fail_reason)
 {
-       const struct bt_value *result = NULL;
-       enum bt_query_executor_status status;
+       const bt_value *result = NULL;
+       bt_query_executor_status status;
        *fail_reason = "unknown error";
        int ret = 0;
 
@@ -261,10 +263,10 @@ end:
 }
 
 static
-const struct bt_plugin *find_plugin(const char *name)
+const bt_plugin *find_plugin(const char *name)
 {
        int i;
-       const struct bt_plugin *plugin = NULL;
+       const bt_plugin *plugin = NULL;
 
        BT_ASSERT(name);
        BT_LOGD("Finding plugin: name=\"%s\"", name);
@@ -292,7 +294,7 @@ const struct bt_plugin *find_plugin(const char *name)
 }
 
 typedef const void *(*plugin_borrow_comp_cls_func_t)(
-               const struct bt_plugin *, const char *);
+               const bt_plugin *, const char *);
 
 static
 const void *find_component_class_from_plugin(const char *plugin_name,
@@ -300,7 +302,7 @@ const void *find_component_class_from_plugin(const char *plugin_name,
                plugin_borrow_comp_cls_func_t plugin_borrow_comp_cls_func)
 {
        const void *comp_class = NULL;
-       const struct bt_plugin *plugin;
+       const bt_plugin *plugin;
 
        BT_LOGD("Finding component class: plugin-name=\"%s\", "
                "comp-cls-name=\"%s\"", plugin_name, comp_class_name);
@@ -328,7 +330,7 @@ end:
 }
 
 static
-const struct bt_component_class_source *find_source_component_class(
+const bt_component_class_source *find_source_component_class(
                const char *plugin_name, const char *comp_class_name)
 {
        return (const void *) find_component_class_from_plugin(
@@ -338,7 +340,7 @@ const struct bt_component_class_source *find_source_component_class(
 }
 
 static
-const struct bt_component_class_filter *find_filter_component_class(
+const bt_component_class_filter *find_filter_component_class(
                const char *plugin_name, const char *comp_class_name)
 {
        return (const void *) find_component_class_from_plugin(
@@ -348,7 +350,7 @@ const struct bt_component_class_filter *find_filter_component_class(
 }
 
 static
-const struct bt_component_class_sink *find_sink_component_class(
+const bt_component_class_sink *find_sink_component_class(
                const char *plugin_name, const char *comp_class_name)
 {
        return (const void *) find_component_class_from_plugin(plugin_name,
@@ -358,11 +360,11 @@ const struct bt_component_class_sink *find_sink_component_class(
 }
 
 static
-const struct bt_component_class *find_component_class(const char *plugin_name,
+const bt_component_class *find_component_class(const char *plugin_name,
                const char *comp_class_name,
-               enum bt_component_class_type comp_class_type)
+               bt_component_class_type comp_class_type)
 {
-       const struct bt_component_class *comp_cls = NULL;
+       const bt_component_class *comp_cls = NULL;
 
        switch (comp_class_type) {
        case BT_COMPONENT_CLASS_TYPE_SOURCE:
@@ -392,7 +394,7 @@ void print_indent(FILE *fp, size_t indent)
 }
 
 static
-const char *component_type_str(enum bt_component_class_type type)
+const char *component_type_str(bt_component_class_type type)
 {
        switch (type) {
        case BT_COMPONENT_CLASS_TYPE_SOURCE:
@@ -408,7 +410,7 @@ const char *component_type_str(enum bt_component_class_type type)
 
 static
 void print_plugin_comp_cls_opt(FILE *fh, const char *plugin_name,
-               const char *comp_cls_name, enum bt_component_class_type type)
+               const char *comp_cls_name, bt_component_class_type type)
 {
        GString *shell_plugin_name = NULL;
        GString *shell_comp_cls_name = NULL;
@@ -446,10 +448,10 @@ end:
 }
 
 static
-void print_value(FILE *, const struct bt_value *, size_t);
+void print_value(FILE *, const bt_value *, size_t);
 
 static
-void print_value_rec(FILE *, const struct bt_value *, size_t);
+void print_value_rec(FILE *, const bt_value *, size_t);
 
 struct print_map_value_data {
        size_t indent;
@@ -457,7 +459,7 @@ struct print_map_value_data {
 };
 
 static
-bt_bool print_map_value(const char *key, const struct bt_value *object,
+bt_bool print_map_value(const char *key, const bt_value *object,
                void *data)
 {
        struct print_map_value_data *print_map_value_data = data;
@@ -489,10 +491,11 @@ bt_bool print_map_value(const char *key, const struct bt_value *object,
 }
 
 static
-void print_value_rec(FILE *fp, const struct bt_value *value, size_t indent)
+void print_value_rec(FILE *fp, const bt_value *value, size_t indent)
 {
        bt_bool bool_val;
        int64_t int_val;
+       uint64_t uint_val;
        double dbl_val;
        const char *str_val;
        int size;
@@ -513,8 +516,14 @@ void print_value_rec(FILE *fp, const struct bt_value *value, size_t indent)
                        bt_common_color_fg_cyan(), bool_val ? "yes" : "no",
                        bt_common_color_reset());
                break;
-       case BT_VALUE_TYPE_INTEGER:
-               int_val = bt_value_integer_get(value);
+       case BT_VALUE_TYPE_UNSIGNED_INTEGER:
+               uint_val = bt_value_unsigned_integer_get(value);
+               fprintf(fp, "%s%s%" PRIu64 "%s\n", bt_common_color_bold(),
+                       bt_common_color_fg_red(), uint_val,
+                       bt_common_color_reset());
+               break;
+       case BT_VALUE_TYPE_SIGNED_INTEGER:
+               int_val = bt_value_signed_integer_get(value);
                fprintf(fp, "%s%s%" PRId64 "%s\n", bt_common_color_bold(),
                        bt_common_color_fg_red(), int_val,
                        bt_common_color_reset());
@@ -544,7 +553,7 @@ void print_value_rec(FILE *fp, const struct bt_value *value, size_t indent)
                }
 
                for (i = 0; i < size; i++) {
-                       const struct bt_value *element =
+                       const bt_value *element =
                                bt_value_array_borrow_element_by_index_const(
                                        value, i);
 
@@ -601,7 +610,7 @@ error:
 }
 
 static
-void print_value(FILE *fp, const struct bt_value *value, size_t indent)
+void print_value(FILE *fp, const bt_value *value, size_t indent)
 {
        if (!bt_value_is_array(value) && !bt_value_is_map(value)) {
                print_indent(fp, indent);
@@ -642,7 +651,7 @@ void print_bt_config_components(GPtrArray *array)
 }
 
 static
-void print_plugin_paths(const struct bt_value *plugin_paths)
+void print_plugin_paths(const bt_value *plugin_paths)
 {
        fprintf(stderr, "  Plugin paths:\n");
        print_value(stderr, plugin_paths, 4);
@@ -754,7 +763,7 @@ void print_cfg(struct bt_config *cfg)
 }
 
 static
-void add_to_loaded_plugins(const struct bt_plugin_set *plugin_set)
+void add_to_loaded_plugins(const bt_plugin_set *plugin_set)
 {
        int64_t i;
        int64_t count;
@@ -763,9 +772,9 @@ void add_to_loaded_plugins(const struct bt_plugin_set *plugin_set)
        BT_ASSERT(count >= 0);
 
        for (i = 0; i < count; i++) {
-               const struct bt_plugin *plugin =
+               const bt_plugin *plugin =
                        bt_plugin_set_borrow_plugin_by_index_const(plugin_set, i);
-               const struct bt_plugin *loaded_plugin =
+               const bt_plugin *loaded_plugin =
                        find_plugin(bt_plugin_get_name(plugin));
 
                BT_ASSERT(plugin);
@@ -789,7 +798,7 @@ void add_to_loaded_plugins(const struct bt_plugin_set *plugin_set)
 }
 
 static
-int load_dynamic_plugins(const struct bt_value *plugin_paths)
+int load_dynamic_plugins(const bt_value *plugin_paths)
 {
        int nr_paths, i, ret = 0;
 
@@ -803,9 +812,9 @@ int load_dynamic_plugins(const struct bt_value *plugin_paths)
        BT_LOGI("Loading dynamic plugins.");
 
        for (i = 0; i < nr_paths; i++) {
-               const struct bt_value *plugin_path_value = NULL;
+               const bt_value *plugin_path_value = NULL;
                const char *plugin_path;
-               const struct bt_plugin_set *plugin_set;
+               const bt_plugin_set *plugin_set;
 
                plugin_path_value =
                        bt_value_array_borrow_element_by_index_const(
@@ -814,7 +823,7 @@ int load_dynamic_plugins(const struct bt_value *plugin_paths)
 
                /*
                 * Skip this if the directory does not exist because
-                * bt_plugin_create_all_from_dir() expects an existing
+                * bt_plugin_find_all_from_dir() expects an existing
                 * directory.
                 */
                if (!g_file_test(plugin_path, G_FILE_TEST_IS_DIR)) {
@@ -823,7 +832,7 @@ int load_dynamic_plugins(const struct bt_value *plugin_paths)
                        continue;
                }
 
-               plugin_set = bt_plugin_create_all_from_dir(plugin_path, false);
+               plugin_set = bt_plugin_find_all_from_dir(plugin_path, false);
                if (!plugin_set) {
                        BT_LOGD("Unable to load dynamic plugins: path=\"%s\"",
                                plugin_path);
@@ -841,10 +850,10 @@ static
 int load_static_plugins(void)
 {
        int ret = 0;
-       const struct bt_plugin_set *plugin_set;
+       const bt_plugin_set *plugin_set;
 
        BT_LOGI("Loading static plugins.");
-       plugin_set = bt_plugin_create_all_from_static();
+       plugin_set = bt_plugin_find_all_from_static();
        if (!plugin_set) {
                BT_LOGE("Unable to load static plugins.");
                ret = -1;
@@ -858,7 +867,7 @@ end:
 }
 
 static
-int load_all_plugins(const struct bt_value *plugin_paths)
+int load_all_plugins(const bt_value *plugin_paths)
 {
        int ret = 0;
 
@@ -879,11 +888,11 @@ end:
 }
 
 static
-void print_plugin_info(const struct bt_plugin *plugin)
+void print_plugin_info(const bt_plugin *plugin)
 {
        unsigned int major, minor, patch;
        const char *extra;
-       enum bt_plugin_status version_status;
+       bt_property_availability version_avail;
        const char *plugin_name;
        const char *path;
        const char *author;
@@ -895,7 +904,7 @@ void print_plugin_info(const struct bt_plugin *plugin)
        author = bt_plugin_get_author(plugin);
        license = bt_plugin_get_license(plugin);
        plugin_description = bt_plugin_get_description(plugin);
-       version_status = bt_plugin_get_version(plugin, &major, &minor,
+       version_avail = bt_plugin_get_version(plugin, &major, &minor,
                &patch, &extra);
        printf("%s%s%s%s:\n", bt_common_color_bold(),
                bt_common_color_fg_blue(), plugin_name,
@@ -907,7 +916,7 @@ void print_plugin_info(const struct bt_plugin *plugin)
                puts("  Built-in");
        }
 
-       if (version_status == BT_PLUGIN_STATUS_OK) {
+       if (version_avail == BT_PROPERTY_AVAILABILITY_AVAILABLE) {
                printf("  %sVersion%s: %u.%u.%u",
                        bt_common_color_bold(), bt_common_color_reset(),
                        major, minor, patch);
@@ -933,8 +942,8 @@ static
 int cmd_query(struct bt_config *cfg)
 {
        int ret = 0;
-       const struct bt_component_class *comp_cls = NULL;
-       const struct bt_value *results = NULL;
+       const bt_component_class *comp_cls = NULL;
+       const bt_value *results = NULL;
        const char *fail_reason = NULL;
 
        comp_cls = find_component_class(
@@ -1002,7 +1011,7 @@ end:
 
 static
 void print_component_class_help(const char *plugin_name,
-               const struct bt_component_class *comp_cls)
+               const bt_component_class *comp_cls)
 {
        const char *comp_class_name =
                bt_component_class_get_name(comp_cls);
@@ -1010,7 +1019,7 @@ void print_component_class_help(const char *plugin_name,
                bt_component_class_get_description(comp_cls);
        const char *comp_class_help =
                bt_component_class_get_help(comp_cls);
-       enum bt_component_class_type type =
+       bt_component_class_type type =
                bt_component_class_get_type(comp_cls);
 
        print_plugin_comp_cls_opt(stdout, plugin_name, comp_class_name, type);
@@ -1028,8 +1037,8 @@ static
 int cmd_help(struct bt_config *cfg)
 {
        int ret = 0;
-       const struct bt_plugin *plugin = NULL;
-       const struct bt_component_class *needed_comp_cls = NULL;
+       const bt_plugin *plugin = NULL;
+       const bt_component_class *needed_comp_cls = NULL;
 
        plugin = find_plugin(cfg->cmd_data.help.cfg_component->plugin_name->str);
        if (!plugin) {
@@ -1097,12 +1106,12 @@ end:
        return ret;
 }
 
-typedef void *(* plugin_borrow_comp_cls_by_index_func_t)(const struct bt_plugin *,
+typedef void *(* plugin_borrow_comp_cls_by_index_func_t)(const bt_plugin *,
        uint64_t);
-typedef const struct bt_component_class *(* spec_comp_cls_borrow_comp_cls_func_t)(
+typedef const bt_component_class *(* spec_comp_cls_borrow_comp_cls_func_t)(
        void *);
 
-void cmd_list_plugins_print_component_classes(const struct bt_plugin *plugin,
+void cmd_list_plugins_print_component_classes(const bt_plugin *plugin,
                const char *cc_type_name, uint64_t count,
                plugin_borrow_comp_cls_by_index_func_t borrow_comp_cls_by_index_func,
                spec_comp_cls_borrow_comp_cls_func_t spec_comp_cls_borrow_comp_cls_func)
@@ -1110,25 +1119,27 @@ void cmd_list_plugins_print_component_classes(const struct bt_plugin *plugin,
        uint64_t i;
 
        if (count == 0) {
-               printf("  %s%s component classes%s: (none)\n", cc_type_name,
+               printf("  %s%s component classes%s: (none)\n",
                        bt_common_color_bold(),
+                       cc_type_name,
                        bt_common_color_reset());
                goto end;
        } else {
-               printf("  %s%s component classes%s:\n", cc_type_name,
+               printf("  %s%s component classes%s:\n",
                        bt_common_color_bold(),
+                       cc_type_name,
                        bt_common_color_reset());
        }
 
        for (i = 0; i < count; i++) {
-               const struct bt_component_class *comp_class =
+               const bt_component_class *comp_class =
                        spec_comp_cls_borrow_comp_cls_func(
                                borrow_comp_cls_by_index_func(plugin, i));
                const char *comp_class_name =
                        bt_component_class_get_name(comp_class);
                const char *comp_class_description =
                        bt_component_class_get_description(comp_class);
-               enum bt_component_class_type type =
+               bt_component_class_type type =
                        bt_component_class_get_type(comp_class);
 
                printf("    ");
@@ -1163,7 +1174,7 @@ int cmd_list_plugins(struct bt_config *cfg)
        }
 
        for (i = 0; i < plugins_count; i++) {
-               const struct bt_plugin *plugin = g_ptr_array_index(loaded_plugins, i);
+               const bt_plugin *plugin = g_ptr_array_index(loaded_plugins, i);
 
                component_classes_count +=
                        bt_plugin_get_source_component_class_count(plugin) +
@@ -1180,26 +1191,26 @@ int cmd_list_plugins(struct bt_config *cfg)
                bt_common_color_reset());
 
        for (i = 0; i < plugins_count; i++) {
-               const struct bt_plugin *plugin = g_ptr_array_index(loaded_plugins, i);
+               const bt_plugin *plugin = g_ptr_array_index(loaded_plugins, i);
 
                printf("\n");
                print_plugin_info(plugin);
                cmd_list_plugins_print_component_classes(plugin, "Source",
                        bt_plugin_get_source_component_class_count(plugin),
                        (plugin_borrow_comp_cls_by_index_func_t)
-                               bt_plugin_borrow_source_component_class_by_name_const,
+                               bt_plugin_borrow_source_component_class_by_index_const,
                        (spec_comp_cls_borrow_comp_cls_func_t)
                                bt_component_class_source_as_component_class);
                cmd_list_plugins_print_component_classes(plugin, "Filter",
                        bt_plugin_get_filter_component_class_count(plugin),
                        (plugin_borrow_comp_cls_by_index_func_t)
-                               bt_plugin_borrow_filter_component_class_by_name_const,
+                               bt_plugin_borrow_filter_component_class_by_index_const,
                        (spec_comp_cls_borrow_comp_cls_func_t)
                                bt_component_class_filter_as_component_class);
                cmd_list_plugins_print_component_classes(plugin, "Sink",
                        bt_plugin_get_sink_component_class_count(plugin),
                        (plugin_borrow_comp_cls_by_index_func_t)
-                               bt_plugin_borrow_sink_component_class_by_name_const,
+                               bt_plugin_borrow_sink_component_class_by_index_const,
                        (spec_comp_cls_borrow_comp_cls_func_t)
                                bt_component_class_sink_as_component_class);
        }
@@ -1212,14 +1223,14 @@ static
 int cmd_print_lttng_live_sessions(struct bt_config *cfg)
 {
        int ret = 0;
-       const struct bt_component_class *comp_cls = NULL;
-       const struct bt_value *results = NULL;
-       struct bt_value *params = NULL;
-       const struct bt_value *map = NULL;
-       const struct bt_value *v = NULL;
+       const bt_component_class *comp_cls = NULL;
+       const bt_value *results = NULL;
+       bt_value *params = NULL;
+       const bt_value *map = NULL;
+       const bt_value *v = NULL;
        static const char * const plugin_name = "ctf";
        static const char * const comp_cls_name = "lttng-live";
-       static const enum bt_component_class_type comp_cls_type =
+       static const bt_component_class_type comp_cls_type =
                BT_COMPONENT_CLASS_TYPE_SOURCE;
        int64_t array_size, i;
        const char *fail_reason = NULL;
@@ -1311,21 +1322,21 @@ int cmd_print_lttng_live_sessions(struct bt_config *cfg)
                        BT_LOGE_STR("Unexpected empty array \"timer-us\" entry.");
                        goto error;
                }
-               timer_us = bt_value_integer_get(v);
+               timer_us = bt_value_signed_integer_get(v);
                fprintf(out_stream, " (timer = %" PRIu64 ", ", timer_us);
                v = bt_value_map_borrow_entry_value_const(map, "stream-count");
                if (!v) {
                        BT_LOGE_STR("Unexpected empty array \"stream-count\" entry.");
                        goto error;
                }
-               streams = bt_value_integer_get(v);
+               streams = bt_value_signed_integer_get(v);
                fprintf(out_stream, "%" PRIu64 " stream(s), ", streams);
                v = bt_value_map_borrow_entry_value_const(map, "client-count");
                if (!v) {
                        BT_LOGE_STR("Unexpected empty array \"client-count\" entry.");
                        goto error;
                }
-               clients = bt_value_integer_get(v);
+               clients = bt_value_signed_integer_get(v);
                fprintf(out_stream, "%" PRIu64 " client(s) connected)\n", clients);
        }
 
@@ -1357,21 +1368,21 @@ end:
                }
        }
 
-       return 0;
+       return ret;
 }
 
 static
 int cmd_print_ctf_metadata(struct bt_config *cfg)
 {
        int ret = 0;
-       const struct bt_component_class *comp_cls = NULL;
-       const struct bt_value *results = NULL;
-       struct bt_value *params = NULL;
-       const struct bt_value *metadata_text_value = NULL;
+       const bt_component_class *comp_cls = NULL;
+       const bt_value *results = NULL;
+       bt_value *params = NULL;
+       const bt_value *metadata_text_value = NULL;
        const char *metadata_text = NULL;
        static const char * const plugin_name = "ctf";
        static const char * const comp_cls_name = "fs";
-       static const enum bt_component_class_type comp_cls_type =
+       static const bt_component_class_type comp_cls_type =
                BT_COMPONENT_CLASS_TYPE_SOURCE;
        const char *fail_reason = NULL;
        FILE *out_stream = stdout;
@@ -1441,8 +1452,11 @@ int cmd_print_ctf_metadata(struct bt_config *cfg)
        if (ret < 0) {
                BT_LOGE("Cannot write whole metadata text to output stream: "
                        "ret=%d", ret);
+               goto end;
        }
 
+       ret = 0;
+
        goto end;
 
 failed:
@@ -1469,7 +1483,7 @@ end:
                }
        }
 
-       return 0;
+       return ret;
 }
 
 struct port_id {
@@ -1530,7 +1544,7 @@ struct cmd_run_ctx {
        GHashTable *sink_components;
 
        /* Owned by this */
-       struct bt_graph *graph;
+       bt_graph *graph;
 
        /* Weak */
        struct bt_config *cfg;
@@ -1593,14 +1607,14 @@ char *s_from_ns(int64_t ns)
 static
 int cmd_run_ctx_connect_upstream_port_to_downstream_component(
                struct cmd_run_ctx *ctx,
-               const struct bt_component *upstream_comp,
-               const struct bt_port_output *out_upstream_port,
+               const bt_component *upstream_comp,
+               const bt_port_output *out_upstream_port,
                struct bt_config_connection *cfg_conn)
 {
        typedef uint64_t (*input_port_count_func_t)(void *);
-       typedef const struct bt_port_input *(*borrow_input_port_by_index_func_t)(
+       typedef const bt_port_input *(*borrow_input_port_by_index_func_t)(
                const void *, uint64_t);
-       const struct bt_port *upstream_port =
+       const bt_port *upstream_port =
                bt_port_output_as_port_const(out_upstream_port);
 
        int ret = 0;
@@ -1610,15 +1624,15 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
        uint64_t i;
        input_port_count_func_t port_count_fn;
        borrow_input_port_by_index_func_t port_by_index_fn;
-       enum bt_graph_status status = BT_GRAPH_STATUS_ERROR;
+       bt_graph_status status = BT_GRAPH_STATUS_ERROR;
        bool insert_trimmer = false;
-       struct bt_value *trimmer_params = NULL;
+       bt_value *trimmer_params = NULL;
        char *intersection_begin = NULL;
        char *intersection_end = NULL;
-       const struct bt_component_filter *trimmer = NULL;
-       const struct bt_component_class_filter *trimmer_class = NULL;
-       const struct bt_port_input *trimmer_input = NULL;
-       const struct bt_port_output *trimmer_output = NULL;
+       const bt_component_filter *trimmer = NULL;
+       const bt_component_class_filter *trimmer_class = NULL;
+       const bt_port_input *trimmer_input = NULL;
+       const bt_port_output *trimmer_output = NULL;
 
        if (ctx->intersections &&
                bt_component_get_class_type(upstream_comp) ==
@@ -1636,7 +1650,7 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
                range = (struct trace_range *) g_hash_table_lookup(
                        ctx->intersections, &port_id);
                if (range) {
-                       enum bt_value_status status;
+                       bt_value_status status;
 
                        intersection_begin = s_from_ns(
                                range->intersection_range_begin_ns);
@@ -1707,12 +1721,11 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
        }
 
        downstream_port_count = port_count_fn(downstream_comp);
-       BT_ASSERT(downstream_port_count >= 0);
 
        for (i = 0; i < downstream_port_count; i++) {
-               const struct bt_port_input *in_downstream_port =
+               const bt_port_input *in_downstream_port =
                        port_by_index_fn(downstream_comp, i);
-               const struct bt_port *downstream_port =
+               const bt_port *downstream_port =
                        bt_port_input_as_port_const(in_downstream_port);
                const char *upstream_port_name;
                const char *downstream_port_name;
@@ -1756,7 +1769,7 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
                         * source and the trimmer.
                         */
                        char *trimmer_name = NULL;
-                       enum bt_graph_status graph_status;
+                       bt_graph_status graph_status;
 
                        ret = asprintf(&trimmer_name,
                                "stream-intersection-trimmer-%s",
@@ -1910,12 +1923,12 @@ end:
 
 static
 int cmd_run_ctx_connect_upstream_port(struct cmd_run_ctx *ctx,
-               const struct bt_port_output *upstream_port)
+               const bt_port_output *upstream_port)
 {
        int ret = 0;
        const char *upstream_port_name;
        const char *upstream_comp_name;
-       const struct bt_component *upstream_comp = NULL;
+       const bt_component *upstream_comp = NULL;
        size_t i;
 
        BT_ASSERT(ctx);
@@ -1988,11 +2001,13 @@ end:
 }
 
 static
-void graph_output_port_added_listener(struct cmd_run_ctx *ctx,
-               const struct bt_port_output *out_port)
+bt_graph_listener_status
+graph_output_port_added_listener(struct cmd_run_ctx *ctx,
+               const bt_port_output *out_port)
 {
-       const struct bt_component *comp;
-       const struct bt_port *port = bt_port_output_as_port_const(out_port);
+       const bt_component *comp;
+       const bt_port *port = bt_port_output_as_port_const(out_port);
+       bt_graph_listener_status ret = BT_GRAPH_LISTENER_STATUS_OK;
 
        comp = bt_port_borrow_component_const(port);
        BT_LOGI("Port added to a graph's component: comp-addr=%p, "
@@ -2017,27 +2032,28 @@ void graph_output_port_added_listener(struct cmd_run_ctx *ctx,
        if (cmd_run_ctx_connect_upstream_port(ctx, out_port)) {
                BT_LOGF_STR("Cannot connect upstream port.");
                fprintf(stderr, "Added port could not be connected: aborting\n");
-               abort();
+               ret = BT_GRAPH_LISTENER_STATUS_ERROR;
+               goto end;
        }
 
 end:
-       return;
+       return ret;
 }
 
 static
-void graph_source_output_port_added_listener(
-               const struct bt_component_source *component,
-               const struct bt_port_output *port, void *data)
+bt_graph_listener_status graph_source_output_port_added_listener(
+               const bt_component_source *component,
+               const bt_port_output *port, void *data)
 {
-       graph_output_port_added_listener(data, port);
+       return graph_output_port_added_listener(data, port);
 }
 
 static
-void graph_filter_output_port_added_listener(
-               const struct bt_component_filter *component,
-               const struct bt_port_output *port, void *data)
+bt_graph_listener_status graph_filter_output_port_added_listener(
+               const bt_component_filter *component,
+               const bt_port_output *port, void *data)
 {
-       graph_output_port_added_listener(data, port);
+       return graph_output_port_added_listener(data, port);
 }
 
 static
@@ -2076,7 +2092,7 @@ static
 int cmd_run_ctx_init(struct cmd_run_ctx *ctx, struct bt_config *cfg)
 {
        int ret = 0;
-       enum bt_graph_status status;
+       bt_graph_status status;
 
        ctx->cfg = cfg;
        ctx->connect_ports = false;
@@ -2142,57 +2158,27 @@ end:
 static
 int set_stream_intersections(struct cmd_run_ctx *ctx,
                struct bt_config_component *cfg_comp,
-               const struct bt_component_class_source *src_comp_cls)
+               const bt_component_class_source *src_comp_cls)
 {
        int ret = 0;
        uint64_t trace_idx;
        int64_t trace_count;
-       enum bt_value_status value_status;
        const char *path = NULL;
-       const struct bt_value *component_path_value = NULL;
-       struct bt_value *query_params = NULL;
-       const struct bt_value *query_result = NULL;
-       const struct bt_value *trace_info = NULL;
-       const struct bt_value *intersection_range = NULL;
-       const struct bt_value *intersection_begin = NULL;
-       const struct bt_value *intersection_end = NULL;
-       const struct bt_value *stream_path_value = NULL;
-       const struct bt_value *stream_paths = NULL;
-       const struct bt_value *stream_infos = NULL;
-       const struct bt_value *stream_info = NULL;
+       const bt_value *query_result = NULL;
+       const bt_value *trace_info = NULL;
+       const bt_value *intersection_range = NULL;
+       const bt_value *intersection_begin = NULL;
+       const bt_value *intersection_end = NULL;
+       const bt_value *stream_infos = NULL;
+       const bt_value *stream_info = NULL;
        struct port_id *port_id = NULL;
        struct trace_range *trace_range = NULL;
        const char *fail_reason = NULL;
-       const struct bt_component_class *comp_cls =
+       const bt_component_class *comp_cls =
                bt_component_class_source_as_component_class_const(src_comp_cls);
 
-       component_path_value = bt_value_map_borrow_entry_value(cfg_comp->params,
-                                                              "path");
-       if (component_path_value && !bt_value_is_string(component_path_value)) {
-               BT_LOGD("Cannot get path parameter: component-name=%s",
-                       cfg_comp->instance_name->str);
-               ret = -1;
-               goto error;
-       }
-
-       path = bt_value_string_get(component_path_value);
-       query_params = bt_value_map_create();
-       if (!query_params) {
-               BT_LOGE_STR("Cannot create query parameters.");
-               ret = -1;
-               goto error;
-       }
-
-       value_status = bt_value_map_insert_string_entry(query_params, "path",
-               path);
-       if (value_status != BT_VALUE_STATUS_OK) {
-               BT_LOGE_STR("Cannot insert path parameter in query parameter map.");
-               ret = -1;
-               goto error;
-       }
-
        ret = query(comp_cls, "trace-info",
-               query_params, &query_result,
+               cfg_comp->params, &query_result,
                &fail_reason);
        if (ret) {
                BT_LOGD("Component class does not support the `trace-info` query: %s: "
@@ -2255,8 +2241,8 @@ int set_stream_intersections(struct cmd_run_ctx *ctx,
                        goto error;
                }
 
-               begin = bt_value_integer_get(intersection_begin);
-               end = bt_value_integer_get(intersection_end);
+               begin = bt_value_signed_integer_get(intersection_begin);
+               end = bt_value_signed_integer_get(intersection_end);
 
                if (begin < 0 || end < 0 || end < begin) {
                        BT_LOGW("Invalid trace stream intersection values: "
@@ -2281,20 +2267,8 @@ int set_stream_intersections(struct cmd_run_ctx *ctx,
                        goto error;
                }
 
-               /*
-                * FIXME
-                *
-                * The first path of a stream's "paths" is currently used to
-                * associate streams/ports to a given trace intersection.
-                *
-                * This is a fragile hack as it relies on the port names
-                * being set to the various streams path.
-                *
-                * A stream name should be introduced as part of the trace-info
-                * query result.
-                */
                for (stream_idx = 0; stream_idx < stream_count; stream_idx++) {
-                       const char *stream_path;
+                       const bt_value *port_name;
 
                        port_id = g_new0(struct port_id, 1);
                        if (!port_id) {
@@ -2326,26 +2300,14 @@ int set_stream_intersections(struct cmd_run_ctx *ctx,
                                goto error;
                        }
 
-                       stream_paths = bt_value_map_borrow_entry_value_const(stream_info,
-                                                                            "paths");
-                       if (!stream_paths || !bt_value_is_array(stream_paths)) {
-                               ret = -1;
-                               BT_LOGD_STR("Cannot retrieve stream paths from trace in query result.");
-                               goto error;
-                       }
-
-                       stream_path_value =
-                               bt_value_array_borrow_element_by_index_const(
-                                       stream_paths, 0);
-                       if (!stream_path_value ||
-                               !bt_value_is_string(stream_path_value)) {
+                       port_name = bt_value_map_borrow_entry_value_const(stream_info, "port-name");
+                       if (!port_name || !bt_value_is_string(port_name)) {
                                ret = -1;
-                               BT_LOGD_STR("Cannot retrieve stream path value from trace in query result.");
+                               BT_LOGD_STR("Cannot retrieve port name in query result.");
                                goto error;
                        }
 
-                       stream_path = bt_value_string_get(stream_path_value);
-                       port_id->port_name = strdup(stream_path);
+                       port_id->port_name = g_strdup(bt_value_string_get(port_name));
                        if (!port_id->port_name) {
                                ret = -1;
                                BT_LOGE_STR("Cannot allocate memory for port_id port_name.");
@@ -2370,7 +2332,6 @@ error:
                path ? path : "(unknown)",
                bt_common_color_reset());
 end:
-       bt_value_put_ref(query_params);
        bt_value_put_ref(query_result);
        g_free(port_id);
        g_free(trace_range);
@@ -2551,7 +2512,7 @@ end:
 }
 
 typedef uint64_t (*output_port_count_func_t)(const void *);
-typedef const struct bt_port_output *(*borrow_output_port_by_index_func_t)(
+typedef const bt_port_output *(*borrow_output_port_by_index_func_t)(
        const void *, uint64_t);
 
 static
@@ -2564,10 +2525,9 @@ int cmd_run_ctx_connect_comp_ports(struct cmd_run_ctx *ctx,
        uint64_t i;
 
        count = port_count_fn(comp);
-       BT_ASSERT(count >= 0);
 
        for (i = 0; i < count; i++) {
-               const struct bt_port_output *upstream_port = port_by_index_fn(comp, i);
+               const bt_port_output *upstream_port = port_by_index_fn(comp, i);
 
                BT_ASSERT(upstream_port);
                ret = cmd_run_ctx_connect_upstream_port(ctx, upstream_port);
@@ -2619,7 +2579,7 @@ end:
 }
 
 static inline
-const char *bt_graph_status_str(enum bt_graph_status status)
+const char *bt_graph_status_str(bt_graph_status status)
 {
        switch (status) {
        case BT_GRAPH_STATUS_OK:
@@ -2634,8 +2594,6 @@ const char *bt_graph_status_str(enum bt_graph_status status)
                return "BT_GRAPH_STATUS_CANCELED";
        case BT_GRAPH_STATUS_ERROR:
                return "BT_GRAPH_STATUS_ERROR";
-       case BT_GRAPH_STATUS_NO_SINK:
-               return "BT_GRAPH_STATUS_NO_SINK";
        case BT_GRAPH_STATUS_NOMEM:
                return "BT_GRAPH_STATUS_NOMEM";
        default:
@@ -2693,7 +2651,7 @@ int cmd_run(struct bt_config *cfg)
 
        /* Run the graph */
        while (true) {
-               enum bt_graph_status graph_status = bt_graph_run(ctx.graph);
+               bt_graph_status graph_status = bt_graph_run(ctx.graph);
 
                /*
                 * Reset console in case something messed with console
This page took 0.03727 seconds and 4 git commands to generate.