bt2: make bt2.Error wrap current thread's error
[babeltrace.git] / src / bindings / python / bt2 / bt2 / native_bt_graph.i
index bb7a5d133d4aefa9a3c0a722954ca9cbe7e09cf6..c592452dde11bbfb63d4ca26a93114fe59ad7794 100644 (file)
 
 /* Output argument typemap for connection output (always appends) */
 %typemap(in, numinputs=0)
-       (const bt_connection **BTOUTCONN)
+       (const bt_connection **)
        (bt_connection *temp_conn = NULL) {
        $1 = &temp_conn;
 }
 
 %typemap(argout)
-       (const bt_connection **BTOUTCONN) {
+       (const bt_connection **) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
                $result = SWIG_Python_AppendOutput($result,
 
 /* Output argument typemap for component output (always appends) */
 %typemap(in, numinputs=0)
-       (const bt_component_source **OUT)
+       (const bt_component_source **)
        (bt_component_source *temp_comp = NULL) {
        $1 = &temp_comp;
 }
 
 %typemap(in, numinputs=0)
-       (const bt_component_filter **OUT)
+       (const bt_component_filter **)
        (bt_component_filter *temp_comp = NULL) {
        $1 = &temp_comp;
 }
 
 %typemap(in, numinputs=0)
-       (const bt_component_sink **OUT)
+       (const bt_component_sink **)
        (bt_component_sink *temp_comp = NULL) {
        $1 = &temp_comp;
 }
 
-%typemap(argout) (const bt_component_source **OUT) {
+%typemap(argout) (const bt_component_source **) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
                $result = SWIG_Python_AppendOutput($result,
@@ -75,7 +75,7 @@
        }
 }
 
-%typemap(argout) (const bt_component_filter **OUT) {
+%typemap(argout) (const bt_component_filter **) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
                $result = SWIG_Python_AppendOutput($result,
@@ -88,7 +88,7 @@
        }
 }
 
-%typemap(argout) (const bt_component_sink **OUT) {
+%typemap(argout) (const bt_component_sink **) {
        if (*$1) {
                /* SWIG_Python_AppendOutput() steals the created object */
                $result = SWIG_Python_AppendOutput($result,
        }
 }
 
-/* From graph-const.h */
-
-typedef enum bt_graph_status {
-       BT_GRAPH_STATUS_OK = 0,
-       BT_GRAPH_STATUS_END = 1,
-       BT_GRAPH_STATUS_AGAIN = 11,
-       BT_GRAPH_STATUS_COMPONENT_REFUSES_PORT_CONNECTION = 111,
-       BT_GRAPH_STATUS_CANCELED = 125,
-       BT_GRAPH_STATUS_ERROR = -1,
-       BT_GRAPH_STATUS_NOMEM = -12,
-} bt_graph_status;
-
-extern bt_bool bt_graph_is_canceled(const bt_graph *graph);
-
-extern void bt_graph_get_ref(const bt_graph *graph);
-
-extern void bt_graph_put_ref(const bt_graph *graph);
-
-/* From graph.h */
-
-typedef enum bt_graph_listener_status {
-       BT_GRAPH_LISTENER_STATUS_OK = 0,
-       BT_GRAPH_LISTENER_STATUS_ERROR = -1,
-       BT_GRAPH_LISTENER_STATUS_NOMEM = -12,
-} bt_graph_listener_status;
-
-
-typedef bt_graph_listener_status
-(*bt_graph_filter_component_input_port_added_listener_func)(
-               const bt_component_filter *component,
-               const bt_port_input *port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_sink_component_input_port_added_listener_func)(
-               const bt_component_sink *component,
-               const bt_port_input *port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_source_component_output_port_added_listener_func)(
-               const bt_component_source *component,
-               const bt_port_output *port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_filter_component_output_port_added_listener_func)(
-               const bt_component_filter *component,
-               const bt_port_output *port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_source_filter_component_ports_connected_listener_func)(
-               const bt_component_source *source_component,
-               const bt_component_filter *filter_component,
-               const bt_port_output *upstream_port,
-               const bt_port_input *downstream_port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_source_sink_component_ports_connected_listener_func)(
-               const bt_component_source *source_component,
-               const bt_component_sink *sink_component,
-               const bt_port_output *upstream_port,
-               const bt_port_input *downstream_port, void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_filter_filter_component_ports_connected_listener_func)(
-               const bt_component_filter *filter_component_upstream,
-               const bt_component_filter *filter_component_downstream,
-               const bt_port_output *upstream_port,
-               const bt_port_input *downstream_port,
-               void *data);
-
-typedef bt_graph_listener_status
-(*bt_graph_filter_sink_component_ports_connected_listener_func)(
-               const bt_component_filter *filter_component,
-               const bt_component_sink *sink_component,
-               const bt_port_output *upstream_port,
-               const bt_port_input *downstream_port, void *data);
-
-typedef void (* bt_graph_listener_removed_func)(void *data);
-
-extern bt_graph *bt_graph_create(void);
-
-extern bt_graph_status bt_graph_add_source_component(bt_graph *graph,
-               const bt_component_class_source *component_class,
-               const char *name, const bt_value *params,
-               const bt_component_source **OUT);
-
-extern bt_graph_status bt_graph_add_source_component_with_init_method_data(
-               bt_graph *graph,
-               const bt_component_class_source *component_class,
-               const char *name, const bt_value *params,
-               void *init_method_data,
-               const bt_component_source **OUT);
-
-extern bt_graph_status bt_graph_add_filter_component(bt_graph *graph,
-               const bt_component_class_filter *component_class,
-               const char *name, const bt_value *params,
-               const bt_component_filter **OUT);
-
-extern bt_graph_status bt_graph_add_filter_component_with_init_method_data(
-               bt_graph *graph,
-               const bt_component_class_filter *component_class,
-               const char *name, const bt_value *params,
-               void *init_method_data,
-               const bt_component_filter **OUT);
-
-extern bt_graph_status bt_graph_add_sink_component(
-               bt_graph *graph, const bt_component_class_sink *component_class,
-               const char *name, const bt_value *params,
-               const bt_component_sink **OUT);
-
-extern bt_graph_status bt_graph_add_sink_component_with_init_method_data(
-               bt_graph *graph, const bt_component_class_sink *component_class,
-               const char *name, const bt_value *params,
-               void *init_method_data,
-               const bt_component_sink **OUT);
-
-extern bt_graph_status bt_graph_connect_ports(bt_graph *graph,
-               const bt_port_output *upstream,
-               const bt_port_input *downstream,
-               const bt_connection **BTOUTCONN);
-
-extern bt_graph_status bt_graph_run(bt_graph *graph);
-
-extern bt_graph_status bt_graph_consume(bt_graph *graph);
-
-extern bt_graph_status bt_graph_add_filter_component_input_port_added_listener(
-               bt_graph *graph,
-               bt_graph_filter_component_input_port_added_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status bt_graph_add_sink_component_input_port_added_listener(
-               bt_graph *graph,
-               bt_graph_sink_component_input_port_added_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status bt_graph_add_source_component_output_port_added_listener(
-               bt_graph *graph,
-               bt_graph_source_component_output_port_added_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status bt_graph_add_filter_component_output_port_added_listener(
-               bt_graph *graph,
-               bt_graph_filter_component_output_port_added_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status
-bt_graph_add_source_filter_component_ports_connected_listener(
-               bt_graph *graph,
-               bt_graph_source_filter_component_ports_connected_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status
-bt_graph_add_filter_filter_component_ports_connected_listener(
-               bt_graph *graph,
-               bt_graph_filter_filter_component_ports_connected_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status
-bt_graph_add_source_sink_component_ports_connected_listener(
-               bt_graph *graph,
-               bt_graph_source_sink_component_ports_connected_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status
-bt_graph_add_filter_sink_component_ports_connected_listener(
-               bt_graph *graph,
-               bt_graph_filter_sink_component_ports_connected_listener_func listener,
-               bt_graph_listener_removed_func listener_removed, void *data,
-               int *listener_id);
-
-extern bt_graph_status bt_graph_cancel(bt_graph *graph);
+%include <babeltrace2/graph/graph-const.h>
+%include <babeltrace2/graph/graph.h>
 
 /* Helper functions for Python */
 
 %{
-
-static void graph_listener_removed(void *py_callable)
+static
+void graph_listener_removed(void *py_callable)
 {
        BT_ASSERT(py_callable);
        Py_DECREF(py_callable);
 }
 
-static bt_graph_listener_status
-port_added_listener(
+static bt_graph_listener_func_status port_added_listener(
        const void *component,
        swig_type_info *component_swig_type,
        bt_component_class_type component_class_type,
@@ -302,43 +126,43 @@ port_added_listener(
        PyObject *py_component_ptr = NULL;
        PyObject *py_port_ptr = NULL;
        PyObject *py_res = NULL;
-       bt_graph_listener_status status;
+       bt_graph_listener_func_status status;
 
        py_component_ptr = SWIG_NewPointerObj(SWIG_as_voidptr(component), component_swig_type, 0);
        if (!py_component_ptr) {
                BT_LOGF_STR("Failed to create component SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
 
        py_port_ptr = SWIG_NewPointerObj(SWIG_as_voidptr(port), port_swig_type, 0);
        if (!py_port_ptr) {
                BT_LOGF_STR("Failed to create port SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
 
        py_res = PyObject_CallFunction(py_callable, "(OiOi)",
                py_component_ptr, component_class_type, py_port_ptr, port_type);
        if (!py_res) {
-               bt2_py_loge_exception();
+               loge_exception("Graph's port added listener (Python)");
                PyErr_Clear();
-               status = BT_GRAPH_LISTENER_STATUS_ERROR;
+               status = __BT_FUNC_STATUS_ERROR;
                goto end;
        }
-       
+
        BT_ASSERT(py_res == Py_None);
-       status = BT_GRAPH_LISTENER_STATUS_OK;
+       status = __BT_FUNC_STATUS_OK;
 
 end:
        Py_XDECREF(py_res);
        Py_XDECREF(py_port_ptr);
        Py_XDECREF(py_component_ptr);
-
        return status;
 }
 
-static bt_graph_listener_status
+static
+bt_graph_listener_func_status
 source_component_output_port_added_listener(const bt_component_source *component_source,
                                            const bt_port_output *port_output, void *py_callable)
 {
@@ -347,7 +171,8 @@ source_component_output_port_added_listener(const bt_component_source *component
                port_output, SWIGTYPE_p_bt_port_output, BT_PORT_TYPE_OUTPUT, py_callable);
 }
 
-static bt_graph_listener_status
+static
+bt_graph_listener_func_status
 filter_component_input_port_added_listener(const bt_component_filter *component_filter,
                                           const bt_port_input *port_input, void *py_callable)
 {
@@ -356,7 +181,8 @@ filter_component_input_port_added_listener(const bt_component_filter *component_
                port_input, SWIGTYPE_p_bt_port_input, BT_PORT_TYPE_INPUT, py_callable);
 }
 
-static bt_graph_listener_status
+static
+bt_graph_listener_func_status
 filter_component_output_port_added_listener(const bt_component_filter *component_filter,
                                            const bt_port_output *port_output, void *py_callable)
 {
@@ -365,7 +191,8 @@ filter_component_output_port_added_listener(const bt_component_filter *component
                port_output, SWIGTYPE_p_bt_port_output, BT_PORT_TYPE_OUTPUT, py_callable);
 }
 
-static bt_graph_listener_status
+static
+bt_graph_listener_func_status
 sink_component_input_port_added_listener(const bt_component_sink *component_sink,
                                         const bt_port_input *port_input, void *py_callable)
 {
@@ -374,14 +201,16 @@ sink_component_input_port_added_listener(const bt_component_sink *component_sink
                port_input, SWIGTYPE_p_bt_port_input, BT_PORT_TYPE_INPUT, py_callable);
 }
 
-static PyObject *
-bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
-                                    PyObject *py_callable)
+static
+PyObject *bt_bt2_graph_add_port_added_listener(struct bt_graph *graph,
+               PyObject *py_callable)
 {
        PyObject *py_listener_ids = NULL;
        PyObject *py_listener_id = NULL;
        int listener_id;
-       bt_graph_status status;
+       bt_graph_add_listener_status status;
+       const char * const module_name =
+               "graph_add_port_added_listener() (Python)";
 
        BT_ASSERT(graph);
        BT_ASSERT(py_callable);
@@ -392,6 +221,8 @@ bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
         */
        py_listener_ids = PyTuple_New(4);
        if (!py_listener_ids) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyTuple.");
                goto error;
        }
 
@@ -399,12 +230,18 @@ bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
        status = bt_graph_add_source_component_output_port_added_listener(
                graph, source_component_output_port_added_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_source_component_output_port_added_listener has
+                * already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -415,12 +252,18 @@ bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
        status = bt_graph_add_filter_component_input_port_added_listener(
                graph, filter_component_input_port_added_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_filter_component_input_port_added_listener has
+                * already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -431,12 +274,18 @@ bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
        status = bt_graph_add_filter_component_output_port_added_listener(
                graph, filter_component_output_port_added_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_filter_component_output_port_added_listener has
+                * already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -447,12 +296,18 @@ bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
        status = bt_graph_add_sink_component_input_port_added_listener(
                graph, sink_component_input_port_added_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_sink_component_input_port_added_listener has
+                * already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -478,8 +333,8 @@ end:
        return py_listener_ids;
 }
 
-static bt_graph_listener_status
-ports_connected_listener(
+static
+bt_graph_listener_func_status ports_connected_listener(
                const void *upstream_component,
                swig_type_info *upstream_component_swig_type,
                bt_component_class_type upstream_component_class_type,
@@ -495,13 +350,13 @@ ports_connected_listener(
        PyObject *py_downstream_component_ptr = NULL;
        PyObject *py_downstream_port_ptr = NULL;
        PyObject *py_res = NULL;
-       bt_graph_listener_status status;
+       bt_graph_listener_func_status status;
 
        py_upstream_component_ptr = SWIG_NewPointerObj(SWIG_as_voidptr(upstream_component),
                upstream_component_swig_type, 0);
        if (!py_upstream_component_ptr) {
                BT_LOGF_STR("Failed to create upstream component SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
 
@@ -509,15 +364,15 @@ ports_connected_listener(
                SWIG_as_voidptr(upstream_port), SWIGTYPE_p_bt_port_output, 0);
        if (!py_upstream_port_ptr) {
                BT_LOGF_STR("Failed to create upstream port SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
-       
+
        py_downstream_component_ptr = SWIG_NewPointerObj(SWIG_as_voidptr(downstream_component),
                downstream_component_swig_type, 0);
        if (!py_downstream_component_ptr) {
                BT_LOGF_STR("Failed to create downstream component SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
 
@@ -525,7 +380,7 @@ ports_connected_listener(
                SWIG_as_voidptr(downstream_port), SWIGTYPE_p_bt_port_input, 0);
        if (!py_downstream_port_ptr) {
                BT_LOGF_STR("Failed to create downstream port SWIG pointer object.");
-               status = BT_GRAPH_LISTENER_STATUS_NOMEM;
+               status = __BT_FUNC_STATUS_MEMORY_ERROR;
                goto end;
        }
 
@@ -535,14 +390,14 @@ ports_connected_listener(
                py_downstream_component_ptr, downstream_component_class_type,
                py_downstream_port_ptr);
        if (!py_res) {
-               bt2_py_loge_exception();
+               loge_exception("Graph's port connected listener (Python)");
                PyErr_Clear();
-               status = BT_GRAPH_LISTENER_STATUS_ERROR;
+               status = __BT_FUNC_STATUS_ERROR;
                goto end;
        }
-       
+
        BT_ASSERT(py_res == Py_None);
-       status = BT_GRAPH_LISTENER_STATUS_OK;
+       status = __BT_FUNC_STATUS_OK;
 
 end:
        Py_XDECREF(py_upstream_component_ptr);
@@ -550,12 +405,11 @@ end:
        Py_XDECREF(py_downstream_component_ptr);
        Py_XDECREF(py_downstream_port_ptr);
        Py_XDECREF(py_res);
-
        return status;
 }
 
-static bt_graph_listener_status
-source_filter_component_ports_connected_listener(
+static
+bt_graph_listener_func_status source_filter_component_ports_connected_listener(
        const bt_component_source *source_component,
        const bt_component_filter *filter_component,
        const bt_port_output *upstream_port,
@@ -569,8 +423,8 @@ source_filter_component_ports_connected_listener(
                py_callable);
 }
 
-static bt_graph_listener_status
-source_sink_component_ports_connected_listener(
+static
+bt_graph_listener_func_status source_sink_component_ports_connected_listener(
        const bt_component_source *source_component,
        const bt_component_sink *sink_component,
        const bt_port_output *upstream_port,
@@ -584,8 +438,8 @@ source_sink_component_ports_connected_listener(
                py_callable);
 }
 
-static bt_graph_listener_status
-filter_filter_component_ports_connected_listener(
+static
+bt_graph_listener_func_status filter_filter_component_ports_connected_listener(
        const bt_component_filter *filter_component_left,
        const bt_component_filter *filter_component_right,
        const bt_port_output *upstream_port,
@@ -599,8 +453,8 @@ filter_filter_component_ports_connected_listener(
                py_callable);
 }
 
-static bt_graph_listener_status
-filter_sink_component_ports_connected_listener(
+static
+bt_graph_listener_func_status filter_sink_component_ports_connected_listener(
        const bt_component_filter *filter_component,
        const bt_component_sink *sink_component,
        const bt_port_output *upstream_port,
@@ -614,14 +468,16 @@ filter_sink_component_ports_connected_listener(
                py_callable);
 }
 
-static PyObject*
-bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
-       PyObject *py_callable)
+static
+PyObject *bt_bt2_graph_add_ports_connected_listener(struct bt_graph *graph,
+               PyObject *py_callable)
 {
        PyObject *py_listener_ids = NULL;
        PyObject *py_listener_id = NULL;
        int listener_id;
-       bt_graph_status status;
+       bt_graph_add_listener_status status;
+       const char * const module_name =
+               "graph_add_ports_connected_listener() (Python)";
 
        BT_ASSERT(graph);
        BT_ASSERT(py_callable);
@@ -630,6 +486,8 @@ bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
         * return all of their ids. */
        py_listener_ids = PyTuple_New(4);
        if (!py_listener_ids) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyTuple.");
                goto error;
        }
 
@@ -637,12 +495,18 @@ bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
        status = bt_graph_add_source_filter_component_ports_connected_listener(
                graph, source_filter_component_ports_connected_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_source_filter_component_ports_connected_listener
+                * has already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -653,12 +517,18 @@ bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
        status = bt_graph_add_source_sink_component_ports_connected_listener(
                graph, source_sink_component_ports_connected_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_source_sink_component_ports_connected_listener
+                * has already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -669,12 +539,18 @@ bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
        status = bt_graph_add_filter_filter_component_ports_connected_listener(
                graph, filter_filter_component_ports_connected_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_filter_filter_component_ports_connected_listener
+                * has already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -685,12 +561,18 @@ bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
        status = bt_graph_add_filter_sink_component_ports_connected_listener(
                graph, filter_sink_component_ports_connected_listener,
                graph_listener_removed, py_callable, &listener_id);
-       if (status != BT_GRAPH_STATUS_OK) {
+       if (status != __BT_FUNC_STATUS_OK) {
+               /*
+                * bt_graph_add_filter_sink_component_ports_connected_listener
+                * has already logged/appended an error cause.
+                */
                goto error;
        }
 
        py_listener_id = PyLong_FromLong(listener_id);
        if (!py_listener_id) {
+               BT_CURRENT_THREAD_ERROR_APPEND_CAUSE_FROM_UNKNOWN(module_name,
+                       "Failed to allocate one PyLong.");
                goto error;
        }
 
@@ -714,10 +596,9 @@ end:
        Py_XDECREF(py_listener_id);
        return py_listener_ids;
 }
-
 %}
 
-PyObject *bt_py3_graph_add_port_added_listener(struct bt_graph *graph,
+PyObject *bt_bt2_graph_add_port_added_listener(struct bt_graph *graph,
                PyObject *py_callable);
-PyObject *bt_py3_graph_add_ports_connected_listener(struct bt_graph *graph,
+PyObject *bt_bt2_graph_add_ports_connected_listener(struct bt_graph *graph,
                PyObject *py_callable);
This page took 0.037706 seconds and 4 git commands to generate.