lib: rename INVALID_OBJECT status to UNKNOWN_OBJECT
[babeltrace.git] / src / bindings / python / bt2 / bt2 / component.py
index 10b1166300e337ee0fbfe82e828b9beb70e4f848..865ff13598523cc197ec8607d6351339ea14f339 100644 (file)
 # THE SOFTWARE.
 
 from bt2 import native_bt, object, utils
-import bt2.message_iterator
+from bt2 import message_iterator as bt2_message_iterator
 import collections.abc
-import bt2.value
+from bt2 import value as bt2_value
+from bt2 import trace_class as bt2_trace_class
+from bt2 import clock_class as bt2_clock_class
+from bt2 import query_executor as bt2_query_executor
 import traceback
-import bt2.port
+from bt2 import port as bt2_port
 import sys
 import bt2
 import os
@@ -42,7 +45,7 @@ import os
 #     pointer to a 'bt_component_class *'.
 
 
-class _GenericComponentClass(object._SharedObject):
+class _ComponentClass(object._SharedObject):
     @property
     def name(self):
         ptr = self._bt_as_component_class_ptr(self._ptr)
@@ -64,7 +67,7 @@ class _GenericComponentClass(object._SharedObject):
         return self._bt_as_component_class_ptr(self._ptr)
 
     def __eq__(self, other):
-        if not isinstance(other, _GenericComponentClass):
+        if not isinstance(other, _ComponentClass):
             try:
                 if not issubclass(other, _UserComponent):
                     return False
@@ -74,7 +77,7 @@ class _GenericComponentClass(object._SharedObject):
         return self.addr == other.addr
 
 
-class _GenericSourceComponentClass(_GenericComponentClass):
+class _SourceComponentClass(_ComponentClass):
     _get_ref = staticmethod(native_bt.component_class_source_get_ref)
     _put_ref = staticmethod(native_bt.component_class_source_put_ref)
     _bt_as_component_class_ptr = staticmethod(
@@ -82,7 +85,7 @@ class _GenericSourceComponentClass(_GenericComponentClass):
     )
 
 
-class _GenericFilterComponentClass(_GenericComponentClass):
+class _FilterComponentClass(_ComponentClass):
     _get_ref = staticmethod(native_bt.component_class_filter_get_ref)
     _put_ref = staticmethod(native_bt.component_class_filter_put_ref)
     _bt_as_component_class_ptr = staticmethod(
@@ -90,7 +93,7 @@ class _GenericFilterComponentClass(_GenericComponentClass):
     )
 
 
-class _GenericSinkComponentClass(_GenericComponentClass):
+class _SinkComponentClass(_ComponentClass):
     _get_ref = staticmethod(native_bt.component_class_sink_get_ref)
     _put_ref = staticmethod(native_bt.component_class_sink_put_ref)
     _bt_as_component_class_ptr = staticmethod(
@@ -233,7 +236,7 @@ class _SinkComponent(_Component):
     _bt_as_component_ptr = staticmethod(native_bt.component_sink_as_component_const)
 
 
-# This is analogous to _GenericSourceComponentClass, but for source
+# This is analogous to _SourceComponentClass, but for source
 # component objects.
 class _GenericSourceComponent(object._SharedObject, _SourceComponent):
     _get_ref = staticmethod(native_bt.component_source_get_ref)
@@ -246,11 +249,11 @@ class _GenericSourceComponent(object._SharedObject, _SourceComponent):
             native_bt.component_source_borrow_output_port_by_name_const,
             native_bt.component_source_borrow_output_port_by_index_const,
             native_bt.component_source_get_output_port_count,
-            bt2.port._OutputPort,
+            bt2_port._OutputPort,
         )
 
 
-# This is analogous to _GenericFilterComponentClass, but for filter
+# This is analogous to _FilterComponentClass, but for filter
 # component objects.
 class _GenericFilterComponent(object._SharedObject, _FilterComponent):
     _get_ref = staticmethod(native_bt.component_filter_get_ref)
@@ -263,7 +266,7 @@ class _GenericFilterComponent(object._SharedObject, _FilterComponent):
             native_bt.component_filter_borrow_output_port_by_name_const,
             native_bt.component_filter_borrow_output_port_by_index_const,
             native_bt.component_filter_get_output_port_count,
-            bt2.port._OutputPort,
+            bt2_port._OutputPort,
         )
 
     @property
@@ -273,11 +276,11 @@ class _GenericFilterComponent(object._SharedObject, _FilterComponent):
             native_bt.component_filter_borrow_input_port_by_name_const,
             native_bt.component_filter_borrow_input_port_by_index_const,
             native_bt.component_filter_get_input_port_count,
-            bt2.port._InputPort,
+            bt2_port._InputPort,
         )
 
 
-# This is analogous to _GenericSinkComponentClass, but for sink
+# This is analogous to _SinkComponentClass, but for sink
 # component objects.
 class _GenericSinkComponent(object._SharedObject, _SinkComponent):
     _get_ref = staticmethod(native_bt.component_sink_get_ref)
@@ -290,7 +293,7 @@ class _GenericSinkComponent(object._SharedObject, _SinkComponent):
             native_bt.component_sink_borrow_input_port_by_name_const,
             native_bt.component_sink_borrow_input_port_by_index_const,
             native_bt.component_sink_get_input_port_count,
-            bt2.port._InputPort,
+            bt2_port._InputPort,
         )
 
 
@@ -302,9 +305,9 @@ _COMP_CLS_TYPE_TO_GENERIC_COMP_PYCLS = {
 
 
 _COMP_CLS_TYPE_TO_GENERIC_COMP_CLS_PYCLS = {
-    native_bt.COMPONENT_CLASS_TYPE_SOURCE: _GenericSourceComponentClass,
-    native_bt.COMPONENT_CLASS_TYPE_FILTER: _GenericFilterComponentClass,
-    native_bt.COMPONENT_CLASS_TYPE_SINK: _GenericSinkComponentClass,
+    native_bt.COMPONENT_CLASS_TYPE_SOURCE: _SourceComponentClass,
+    native_bt.COMPONENT_CLASS_TYPE_FILTER: _FilterComponentClass,
+    native_bt.COMPONENT_CLASS_TYPE_SINK: _SinkComponentClass,
 }
 
 
@@ -330,8 +333,8 @@ def _create_component_from_ptr_and_get_ref(ptr, comp_cls_type):
 
 
 # Create a component class Python object of type
-# _GenericSourceComponentClass, _GenericFilterComponentClass or
-# _GenericSinkComponentClass, depending on comp_cls_type.
+# _SourceComponentClass, _FilterComponentClass or
+# _SinkComponentClass, depending on comp_cls_type.
 #
 # Acquires a new reference to ptr.
 
@@ -379,7 +382,7 @@ def _trim_docstring(docstring):
 # creates a native BT component class of the corresponding type and
 # associates it with this user-defined class. The metaclass also defines
 # class methods like the `name` and `description` properties to match
-# the _GenericComponentClass interface.
+# the _ComponentClass interface.
 #
 # The component class name which is used is either:
 #
@@ -481,9 +484,9 @@ class _UserComponentType(type):
                 cls, comp_cls_name, comp_cls_descr, comp_cls_help
             )
         elif _UserSinkComponent in bases:
-            if not hasattr(cls, '_consume'):
-                raise bt2.IncompleteUserClass(
-                    "cannot create component class '{}': missing a _consume() method".format(
+            if not hasattr(cls, '_user_consume'):
+                raise bt2._IncompleteUserClass(
+                    "cannot create component class '{}': missing a _user_consume() method".format(
                         class_name
                     )
                 )
@@ -492,7 +495,7 @@ class _UserComponentType(type):
                 cls, comp_cls_name, comp_cls_descr, comp_cls_help
             )
         else:
-            raise bt2.IncompleteUserClass(
+            raise bt2._IncompleteUserClass(
                 "cannot find a known component class base in the bases of '{}'".format(
                     class_name
                 )
@@ -514,7 +517,7 @@ class _UserComponentType(type):
 
         # call user's __init__() method
         if params_ptr is not None:
-            params = bt2.value._create_from_ptr_and_get_ref(params_ptr)
+            params = bt2_value._create_from_ptr_and_get_ref(params_ptr)
         else:
             params = None
 
@@ -529,21 +532,21 @@ class _UserComponentType(type):
     @staticmethod
     def _bt_set_iterator_class(cls, iter_cls):
         if iter_cls is None:
-            raise bt2.IncompleteUserClass(
+            raise bt2._IncompleteUserClass(
                 "cannot create component class '{}': missing message iterator class".format(
                     cls.__name__
                 )
             )
 
-        if not issubclass(iter_cls, bt2.message_iterator._UserMessageIterator):
-            raise bt2.IncompleteUserClass(
+        if not issubclass(iter_cls, bt2_message_iterator._UserMessageIterator):
+            raise bt2._IncompleteUserClass(
                 "cannot create component class '{}': message iterator class does not inherit bt2._UserMessageIterator".format(
                     cls.__name__
                 )
             )
 
         if not hasattr(iter_cls, '__next__'):
-            raise bt2.IncompleteUserClass(
+            raise bt2._IncompleteUserClass(
                 "cannot create component class '{}': message iterator class is missing a __next__() method".format(
                     cls.__name__
                 )
@@ -574,14 +577,16 @@ class _UserComponentType(type):
         # this can raise, in which case the native call to
         # bt_component_class_query() returns NULL
         if params_ptr is not None:
-            params = bt2.value._create_from_ptr_and_get_ref(params_ptr)
+            params = bt2_value._create_from_ptr_and_get_ref(params_ptr)
         else:
             params = None
 
-        query_exec = bt2.QueryExecutor._create_from_ptr_and_get_ref(query_exec_ptr)
+        query_exec = bt2_query_executor.QueryExecutor._create_from_ptr_and_get_ref(
+            query_exec_ptr
+        )
 
         # this can raise, but the native side checks the exception
-        results = cls._query(query_exec, obj, params, log_level)
+        results = cls._user_query(query_exec, obj, params, log_level)
 
         # this can raise, but the native side checks the exception
         results = bt2.create_value(results)
@@ -593,12 +598,12 @@ class _UserComponentType(type):
             results_ptr = results._ptr
 
         # We return a new reference.
-        bt2.value._Value._get_ref(results_ptr)
+        bt2_value._Value._get_ref(results_ptr)
 
         return int(results_ptr)
 
-    def _query(cls, query_executor, obj, params, log_level):
-        raise NotImplementedError
+    def _user_query(cls, query_executor, obj, params, log_level):
+        raise bt2.UnknownObject
 
     def _bt_component_class_ptr(self):
         return self._bt_as_component_class_ptr(self._bt_cc_ptr)
@@ -651,26 +656,26 @@ class _UserComponent(metaclass=_UserComponentType):
     def __init__(self, params=None):
         pass
 
-    def _finalize(self):
+    def _user_finalize(self):
         pass
 
-    def _port_connected(self, port, other_port):
+    def _user_port_connected(self, port, other_port):
         pass
 
     def _bt_port_connected_from_native(
         self, self_port_ptr, self_port_type, other_port_ptr
     ):
-        port = bt2.port._create_self_from_ptr_and_get_ref(self_port_ptr, self_port_type)
+        port = bt2_port._create_self_from_ptr_and_get_ref(self_port_ptr, self_port_type)
 
         if self_port_type == native_bt.PORT_TYPE_OUTPUT:
             other_port_type = native_bt.PORT_TYPE_INPUT
         else:
             other_port_type = native_bt.PORT_TYPE_OUTPUT
 
-        other_port = bt2.port._create_from_ptr_and_get_ref(
+        other_port = bt2_port._create_from_ptr_and_get_ref(
             other_port_ptr, other_port_type
         )
-        self._port_connected(port, other_port)
+        self._user_port_connected(port, other_port)
 
     def _create_trace_class(self, assigns_automatic_stream_class_id=True):
         ptr = self._bt_as_self_component_ptr(self._bt_ptr)
@@ -679,7 +684,7 @@ class _UserComponent(metaclass=_UserComponentType):
         if tc_ptr is None:
             raise bt2._MemoryError('could not create trace class')
 
-        tc = bt2._TraceClass._create_from_ptr(tc_ptr)
+        tc = bt2_trace_class._TraceClass._create_from_ptr(tc_ptr)
         tc._assigns_automatic_stream_class_id = assigns_automatic_stream_class_id
 
         return tc
@@ -700,7 +705,7 @@ class _UserComponent(metaclass=_UserComponentType):
         if cc_ptr is None:
             raise bt2._MemoryError('could not create clock class')
 
-        cc = bt2.clock_class._ClockClass._create_from_ptr(cc_ptr)
+        cc = bt2_clock_class._ClockClass._create_from_ptr(cc_ptr)
 
         if frequency is not None:
             cc._frequency = frequency
@@ -744,7 +749,7 @@ class _UserSourceComponent(_UserComponent, _SourceComponent):
             native_bt.self_component_source_borrow_output_port_by_name,
             native_bt.self_component_source_borrow_output_port_by_index,
             get_output_port_count,
-            bt2.port._UserComponentOutputPort,
+            bt2_port._UserComponentOutputPort,
         )
 
     def _add_output_port(self, name, user_data=None):
@@ -755,7 +760,7 @@ class _UserSourceComponent(_UserComponent, _SourceComponent):
             comp_status, 'cannot add output port to source component object'
         )
         assert self_port_ptr is not None
-        return bt2.port._UserComponentOutputPort._create_from_ptr(self_port_ptr)
+        return bt2_port._UserComponentOutputPort._create_from_ptr(self_port_ptr)
 
 
 class _UserFilterComponent(_UserComponent, _FilterComponent):
@@ -777,7 +782,7 @@ class _UserFilterComponent(_UserComponent, _FilterComponent):
             native_bt.self_component_filter_borrow_output_port_by_name,
             native_bt.self_component_filter_borrow_output_port_by_index,
             get_output_port_count,
-            bt2.port._UserComponentOutputPort,
+            bt2_port._UserComponentOutputPort,
         )
 
     @property
@@ -791,7 +796,7 @@ class _UserFilterComponent(_UserComponent, _FilterComponent):
             native_bt.self_component_filter_borrow_input_port_by_name,
             native_bt.self_component_filter_borrow_input_port_by_index,
             get_input_port_count,
-            bt2.port._UserComponentInputPort,
+            bt2_port._UserComponentInputPort,
         )
 
     def _add_output_port(self, name, user_data=None):
@@ -802,7 +807,7 @@ class _UserFilterComponent(_UserComponent, _FilterComponent):
             comp_status, 'cannot add output port to filter component object'
         )
         assert self_port_ptr
-        return bt2.port._UserComponentOutputPort._create_from_ptr(self_port_ptr)
+        return bt2_port._UserComponentOutputPort._create_from_ptr(self_port_ptr)
 
     def _add_input_port(self, name, user_data=None):
         utils._check_str(name)
@@ -812,7 +817,7 @@ class _UserFilterComponent(_UserComponent, _FilterComponent):
             comp_status, 'cannot add input port to filter component object'
         )
         assert self_port_ptr
-        return bt2.port._UserComponentInputPort._create_from_ptr(self_port_ptr)
+        return bt2_port._UserComponentInputPort._create_from_ptr(self_port_ptr)
 
 
 class _UserSinkComponent(_UserComponent, _SinkComponent):
@@ -824,9 +829,9 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
     )
 
     def _bt_graph_is_configured_from_native(self):
-        self._graph_is_configured()
+        self._user_graph_is_configured()
 
-    def _graph_is_configured(self):
+    def _user_graph_is_configured(self):
         pass
 
     @property
@@ -840,7 +845,7 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
             native_bt.self_component_sink_borrow_input_port_by_name,
             native_bt.self_component_sink_borrow_input_port_by_index,
             get_input_port_count,
-            bt2.port._UserComponentInputPort,
+            bt2_port._UserComponentInputPort,
         )
 
     def _add_input_port(self, name, user_data=None):
@@ -851,10 +856,10 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
             comp_status, 'cannot add input port to sink component object'
         )
         assert self_port_ptr
-        return bt2.port._UserComponentInputPort._create_from_ptr(self_port_ptr)
+        return bt2_port._UserComponentInputPort._create_from_ptr(self_port_ptr)
 
     def _create_input_port_message_iterator(self, input_port):
-        utils._check_type(input_port, bt2.port._UserComponentInputPort)
+        utils._check_type(input_port, bt2_port._UserComponentInputPort)
 
         msg_iter_ptr = native_bt.self_component_port_input_message_iterator_create_from_sink_component(
             self._bt_ptr, input_port._ptr
@@ -863,4 +868,8 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
         if msg_iter_ptr is None:
             raise bt2.CreationError('cannot create message iterator object')
 
-        return bt2.message_iterator._UserComponentInputPortMessageIterator(msg_iter_ptr)
+        return bt2_message_iterator._UserComponentInputPortMessageIterator(msg_iter_ptr)
+
+    @property
+    def _is_interrupted(self):
+        return bool(native_bt.self_component_sink_is_interrupted(self._bt_ptr))
This page took 0.030723 seconds and 4 git commands to generate.