lib: add bt_{graph,query_executor}_add_interrupter()
[babeltrace.git] / src / lib / graph / graph.h
index ef847361e16dcd352b10abf12f3444bedcb6afb1..4e500d49002417b44854a324134c1e8b2f90f698 100644 (file)
@@ -67,6 +67,7 @@ enum bt_graph_configuration_state {
        BT_GRAPH_CONFIGURATION_STATE_PARTIALLY_CONFIGURED,
        BT_GRAPH_CONFIGURATION_STATE_CONFIGURED,
        BT_GRAPH_CONFIGURATION_STATE_FAULTY,
+       BT_GRAPH_CONFIGURATION_STATE_DESTROYING,
 };
 
 struct bt_graph {
@@ -89,7 +90,19 @@ struct bt_graph {
        /* Queue of pointers (weak references) to sink bt_components. */
        GQueue *sinks_to_consume;
 
-       bool canceled;
+       /*
+        * Array of `struct bt_interrupter *`, each one owned by this.
+        * If any interrupter is set, then this graph is deemed
+        * interrupted.
+        */
+       GPtrArray *interrupters;
+
+       /*
+        * Default interrupter to support bt_graph_interrupt(); owned
+        * by this.
+        */
+       struct bt_interrupter *default_interrupter;
+
        bool in_remove_listener;
        bool has_sink;
 
@@ -145,18 +158,12 @@ struct bt_graph {
 };
 
 static inline
-void _bt_graph_set_can_consume(struct bt_graph *graph, bool can_consume)
+void bt_graph_set_can_consume(struct bt_graph *graph, bool can_consume)
 {
        BT_ASSERT(graph);
        graph->can_consume = can_consume;
 }
 
-#ifdef BT_DEV_MODE
-# define bt_graph_set_can_consume      _bt_graph_set_can_consume
-#else
-# define bt_graph_set_can_consume(_graph, _can_consume)
-#endif
-
 BT_HIDDEN
 int bt_graph_consume_sink_no_check(struct bt_graph *graph,
                struct bt_component_sink *sink);
@@ -190,6 +197,9 @@ BT_HIDDEN
 void bt_graph_add_message(struct bt_graph *graph,
                struct bt_message *msg);
 
+BT_HIDDEN
+bool bt_graph_is_interrupted(const struct bt_graph *graph);
+
 static inline
 const char *bt_graph_configuration_state_string(
                enum bt_graph_configuration_state state)
This page took 0.025474 seconds and 4 git commands to generate.