bt2: rename `_Generic*ComponentClass` -> `_*ComponentClass`
[babeltrace.git] / src / bindings / python / bt2 / bt2 / component.py
index ef86bbcf50f1f42028e4789208e6222c6e90601b..3557445681c0cb5dee1adb43cced1a0205888e4c 100644 (file)
@@ -42,7 +42,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 +64,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 +74,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 +82,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 +90,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 +233,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)
@@ -250,7 +250,7 @@ class _GenericSourceComponent(object._SharedObject, _SourceComponent):
         )
 
 
-# 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)
@@ -277,7 +277,7 @@ class _GenericFilterComponent(object._SharedObject, _FilterComponent):
         )
 
 
-# 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)
@@ -302,9 +302,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 +330,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 +379,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,13 +481,6 @@ class _UserComponentType(type):
                 cls, comp_cls_name, comp_cls_descr, comp_cls_help
             )
         elif _UserSinkComponent in bases:
-            if not hasattr(cls, '_graph_is_configured'):
-                raise bt2.IncompleteUserClass(
-                    "cannot create component class '{}': missing a _graph_is_configured() method".format(
-                        class_name
-                    )
-                )
-
             if not hasattr(cls, '_consume'):
                 raise bt2.IncompleteUserClass(
                     "cannot create component class '{}': missing a _consume() method".format(
@@ -506,7 +499,7 @@ class _UserComponentType(type):
             )
 
         if cc_ptr is None:
-            raise bt2.CreationError(
+            raise bt2._MemoryError(
                 "cannot create component class '{}'".format(class_name)
             )
 
@@ -529,7 +522,7 @@ class _UserComponentType(type):
         return self
 
     def __call__(cls, *args, **kwargs):
-        raise bt2.Error(
+        raise RuntimeError(
             'cannot directly instantiate a user component from a Python module'
         )
 
@@ -679,15 +672,12 @@ class _UserComponent(metaclass=_UserComponentType):
         )
         self._port_connected(port, other_port)
 
-    def _bt_graph_is_configured_from_native(self):
-        self._graph_is_configured()
-
     def _create_trace_class(self, assigns_automatic_stream_class_id=True):
         ptr = self._bt_as_self_component_ptr(self._bt_ptr)
         tc_ptr = native_bt.trace_class_create(ptr)
 
         if tc_ptr is None:
-            raise bt2.CreationError('could not create trace class')
+            raise bt2._MemoryError('could not create trace class')
 
         tc = bt2._TraceClass._create_from_ptr(tc_ptr)
         tc._assigns_automatic_stream_class_id = assigns_automatic_stream_class_id
@@ -708,7 +698,7 @@ class _UserComponent(metaclass=_UserComponentType):
         cc_ptr = native_bt.clock_class_create(ptr)
 
         if cc_ptr is None:
-            raise bt2.CreationError('could not create clock class')
+            raise bt2._MemoryError('could not create clock class')
 
         cc = bt2.clock_class._ClockClass._create_from_ptr(cc_ptr)
 
@@ -833,6 +823,12 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
         native_bt.self_component_sink_as_self_component
     )
 
+    def _bt_graph_is_configured_from_native(self):
+        self._graph_is_configured()
+
+    def _graph_is_configured(self):
+        pass
+
     @property
     def _input_ports(self):
         def get_input_port_count(self_ptr):
@@ -856,3 +852,19 @@ class _UserSinkComponent(_UserComponent, _SinkComponent):
         )
         assert 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)
+
+        msg_iter_ptr = native_bt.self_component_port_input_message_iterator_create_from_sink_component(
+            self._bt_ptr, input_port._ptr
+        )
+
+        if msg_iter_ptr is None:
+            raise bt2.CreationError('cannot create message iterator object')
+
+        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.030994 seconds and 4 git commands to generate.