lib: add bt_{graph,query_executor}_add_interrupter()
[babeltrace.git] / src / bindings / python / bt2 / bt2 / graph.py
index 870ddb381956406c6e79b878c8baa8db178f2e22..6d083228ba3c6e951a6d09bb024cbb94496144c1 100644 (file)
@@ -21,6 +21,7 @@
 # THE SOFTWARE.
 
 from bt2 import native_bt, object, utils
+import bt2.interrupter
 import bt2.connection
 import bt2.component
 import functools
@@ -73,7 +74,7 @@ class Graph(object._SharedObject):
         ptr = native_bt.graph_create()
 
         if ptr is None:
-            raise bt2.CreationError('cannot create graph object')
+            raise bt2._MemoryError('cannot create graph object')
 
         super().__init__(ptr)
 
@@ -147,7 +148,7 @@ class Graph(object._SharedObject):
 
         listener_ids = fn(self._ptr, listener_from_native)
         if listener_ids is None:
-            raise bt2.Error('cannot add listener to graph object')
+            raise bt2._Error('cannot add listener to graph object')
 
         return bt2._ListenerHandle(listener_ids, self)
 
@@ -162,7 +163,7 @@ class Graph(object._SharedObject):
 
         listener_ids = fn(self._ptr, listener_from_native)
         if listener_ids is None:
-            raise bt2.Error('cannot add listener to graph object')
+            raise bt2._Error('cannot add listener to graph object')
 
         return bt2._ListenerHandle(listener_ids, self)
 
@@ -170,24 +171,19 @@ class Graph(object._SharedObject):
         status = native_bt.graph_run(self._ptr)
 
         try:
-            utils._handle_func_status(
-                status, 'graph object stopped running because of an unexpected error'
-            )
+            utils._handle_func_status(status, 'graph object stopped running')
         except bt2.Stop:
             # done
             return
         except Exception:
             raise
 
-    def cancel(self):
-        status = native_bt.graph_cancel(self._ptr)
-        utils._handle_func_status(status, 'cannot cancel graph object')
+    def add_interrupter(self, interrupter):
+        utils._check_type(interrupter, bt2.interrupter.Interrupter)
+        native_bt.graph_add_interrupter(self._ptr, interrupter._ptr)
 
-    @property
-    def is_canceled(self):
-        is_canceled = native_bt.graph_is_canceled(self._ptr)
-        assert is_canceled >= 0
-        return is_canceled > 0
+    def interrupt(self):
+        native_bt.graph_interrupt(self._ptr)
 
     def create_output_port_message_iterator(self, output_port):
         utils._check_type(output_port, bt2.port._OutputPort)
@@ -196,6 +192,6 @@ class Graph(object._SharedObject):
         )
 
         if msg_iter_ptr is None:
-            raise bt2.CreationError('cannot create output port message iterator')
+            raise bt2._MemoryError('cannot create output port message iterator')
 
         return bt2.message_iterator._OutputPortMessageIterator(msg_iter_ptr)
This page took 0.025512 seconds and 4 git commands to generate.