X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fgraph%2Fgraph.c;h=e71eaeede02e3e7696224a8553971716b6b3bf08;hb=0d107cdd376ff07c7bc6da9dfd46d57463442df1;hp=b557fa43ab19c6dac82fc39ffd9ddacfa13528e1;hpb=c3acd5f3f82ef06a3d04dc180c901a4597514d13;p=babeltrace.git diff --git a/lib/graph/graph.c b/lib/graph/graph.c index b557fa43..e71eaeed 100644 --- a/lib/graph/graph.c +++ b/lib/graph/graph.c @@ -510,7 +510,7 @@ end: } static -void add_listener(GArray *listeners, void *func, void *data) +int add_listener(GArray *listeners, void *func, void *data) { struct bt_graph_listener listener = { .func = func, @@ -518,110 +518,115 @@ void add_listener(GArray *listeners, void *func, void *data) }; g_array_append_val(listeners, listener); + return listeners->len - 1; } -enum bt_graph_status bt_graph_add_port_added_listener( +int bt_graph_add_port_added_listener( struct bt_graph *graph, bt_graph_port_added_listener listener, void *data) { - enum bt_graph_status status = BT_GRAPH_STATUS_OK; + int ret; if (!graph) { BT_LOGW_STR("Invalid parameter: graph is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } if (!listener) { BT_LOGW_STR("Invalid parameter: listener is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } - add_listener(graph->listeners.port_added, listener, data); + ret = add_listener(graph->listeners.port_added, listener, data); BT_LOGV("Added \"port added\" listener to graph: " - "graph-addr=%p, listener-addr=%p", graph, listener); + "graph-addr=%p, listener-addr=%p, pos=%d", + graph, listener, ret); end: - return status; + return ret; } -enum bt_graph_status bt_graph_add_port_removed_listener( +int bt_graph_add_port_removed_listener( struct bt_graph *graph, bt_graph_port_removed_listener listener, void *data) { - enum bt_graph_status status = BT_GRAPH_STATUS_OK; + int ret; if (!graph) { BT_LOGW_STR("Invalid parameter: graph is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } if (!listener) { BT_LOGW_STR("Invalid parameter: listener is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } - add_listener(graph->listeners.port_removed, listener, data); + ret = add_listener(graph->listeners.port_removed, listener, data); BT_LOGV("Added \"port removed\" listener to graph: " - "graph-addr=%p, listener-addr=%p", graph, listener); + "graph-addr=%p, listener-addr=%p, pos=%d", + graph, listener, ret); end: - return status; + return ret; } -enum bt_graph_status bt_graph_add_ports_connected_listener( +int bt_graph_add_ports_connected_listener( struct bt_graph *graph, bt_graph_ports_connected_listener listener, void *data) { - enum bt_graph_status status = BT_GRAPH_STATUS_OK; + int ret; if (!graph) { BT_LOGW_STR("Invalid parameter: graph is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } if (!listener) { BT_LOGW_STR("Invalid parameter: listener is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } - add_listener(graph->listeners.ports_connected, listener, data); + ret = add_listener(graph->listeners.ports_connected, listener, data); BT_LOGV("Added \"port connected\" listener to graph: " - "graph-addr=%p, listener-addr=%p", graph, listener); + "graph-addr=%p, listener-addr=%p, pos=%d", + graph, listener, ret); end: - return status; + return ret; } -enum bt_graph_status bt_graph_add_ports_disconnected_listener( +int bt_graph_add_ports_disconnected_listener( struct bt_graph *graph, bt_graph_ports_disconnected_listener listener, void *data) { - enum bt_graph_status status = BT_GRAPH_STATUS_OK; + int ret; if (!graph) { BT_LOGW_STR("Invalid parameter: graph is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } if (!listener) { BT_LOGW_STR("Invalid parameter: listener is NULL."); - status = BT_GRAPH_STATUS_INVALID; + ret = -1; goto end; } - add_listener(graph->listeners.ports_disconnected, listener, data); + ret = add_listener(graph->listeners.ports_disconnected, listener, data); BT_LOGV("Added \"port disconnected\" listener to graph: " - "graph-addr=%p, listener-addr=%p", graph, listener); + "graph-addr=%p, listener-addr=%p, pos=%d", + graph, listener, ret); end: - return status; + return ret; } BT_HIDDEN