from bt2 import native_bt, object, utils
from bt2 import message as bt2_message
import collections.abc
-from bt2 import component as bt2_component
from bt2 import stream as bt2_stream
from bt2 import event_class as bt2_event_class
from bt2 import packet as bt2_packet
)
-# This is created when the user wants to iterate on a component's output port,
-# from outside the graph.
-class _OutputPortMessageIterator(_GenericMessageIterator):
- _get_msg_range = staticmethod(native_bt.bt2_port_output_get_msg_range)
- _get_ref = staticmethod(native_bt.port_output_message_iterator_get_ref)
- _put_ref = staticmethod(native_bt.port_output_message_iterator_put_ref)
- _can_seek_beginning = staticmethod(
- native_bt.port_output_message_iterator_can_seek_beginning
- )
- _seek_beginning = staticmethod(
- native_bt.port_output_message_iterator_seek_beginning
- )
-
-
# This is extended by the user to implement component classes in Python. It
# is created for a given output port when an input port message iterator is
# created on the input port on the other side of the connection. It is also
msg = next(self)
except StopIteration:
raise bt2.Stop
- except:
+ except Exception:
raise
utils._check_type(msg, bt2_message._Message)
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_message_iterator(
+ status, msg_iter_ptr = native_bt.bt2_self_component_port_input_message_iterator_create_from_message_iterator(
self._bt_ptr, input_port._ptr
)
-
- if msg_iter_ptr is None:
- raise bt2.CreationError('cannot create message iterator object')
+ utils._handle_func_status(status, 'cannot create message iterator object')
+ assert msg_iter_ptr is not None
return _UserComponentInputPortMessageIterator(msg_iter_ptr)
- def _create_event_message(
- self, event_class, parent=None, default_clock_snapshot=None
- ):
+ def _create_event_message(self, event_class, parent, default_clock_snapshot=None):
utils._check_type(event_class, bt2_event_class._EventClass)
if event_class.stream_class.supports_packets: