lib: graph: disallow recursive consuming
[babeltrace.git] / include / babeltrace / graph / graph.h
index a5077c4901991bcc9e343f6aaf4f3a048d375fb3..f85597845e718d871b30772a377b10fb565927aa 100644 (file)
@@ -52,6 +52,7 @@ enum bt_graph_status {
        BT_GRAPH_STATUS_NO_SINK = -6,
        /** General error. */
        BT_GRAPH_STATUS_ERROR = -1,
+       BT_GRAPH_STATUS_CANNOT_CONSUME = -2,
        BT_GRAPH_STATUS_NOMEM = -12,
 };
 
@@ -66,6 +67,7 @@ typedef void (*bt_graph_ports_disconnected_listener)(
                struct bt_component *downstream_component,
                struct bt_port *upstream_port, struct bt_port *downstream_port,
                void *data);
+typedef void (* bt_graph_listener_removed)(void *data);
 
 extern struct bt_graph *bt_graph_create(void);
 
@@ -106,16 +108,20 @@ extern enum bt_graph_status bt_graph_run(struct bt_graph *graph);
 extern enum bt_graph_status bt_graph_consume(struct bt_graph *graph);
 
 extern int bt_graph_add_port_added_listener(struct bt_graph *graph,
-               bt_graph_port_added_listener listener, void *data);
+               bt_graph_port_added_listener listener,
+               bt_graph_listener_removed listener_removed, void *data);
 
 extern int bt_graph_add_port_removed_listener(struct bt_graph *graph,
-               bt_graph_port_removed_listener listener, void *data);
+               bt_graph_port_removed_listener listener,
+               bt_graph_listener_removed listener_removed, void *data);
 
 extern int bt_graph_add_ports_connected_listener(struct bt_graph *graph,
-               bt_graph_ports_connected_listener listener, void *data);
+               bt_graph_ports_connected_listener listener,
+               bt_graph_listener_removed listener_removed, void *data);
 
 extern int bt_graph_add_ports_disconnected_listener(struct bt_graph *graph,
-               bt_graph_ports_disconnected_listener listener, void *data);
+               bt_graph_ports_disconnected_listener listener,
+               bt_graph_listener_removed listener_removed, void *data);
 
 extern enum bt_graph_status bt_graph_cancel(struct bt_graph *graph);
 extern bt_bool bt_graph_is_canceled(struct bt_graph *graph);
This page took 0.024295 seconds and 4 git commands to generate.