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
def _is_interrupted(self):
return bool(native_bt.self_message_iterator_is_interrupted(self._bt_ptr))
- def _finalize(self):
+ def _user_finalize(self):
pass
def __next__(self):
msg = next(self)
except StopIteration:
raise bt2.Stop
- except:
+ except Exception:
raise
utils._check_type(msg, bt2_message._Message)
def _bt_can_seek_beginning_from_native(self):
# Here, we mimic the behavior of the C API:
#
- # - If the iterator has a _can_seek_beginning attribute, read it and use
- # that result.
+ # - If the iterator has a _user_can_seek_beginning attribute,
+ # read it and use that result.
# - Otherwise, the presence or absence of a `_seek_beginning`
# method indicates whether the iterator can seek beginning.
- if hasattr(self, '_can_seek_beginning'):
- can_seek_beginning = self._can_seek_beginning
+ if hasattr(self, '_user_can_seek_beginning'):
+ can_seek_beginning = self._user_can_seek_beginning
utils._check_bool(can_seek_beginning)
return can_seek_beginning
else:
- return hasattr(self, '_seek_beginning')
+ return hasattr(self, '_user_seek_beginning')
def _bt_seek_beginning_from_native(self):
- self._seek_beginning()
+ self._user_seek_beginning()
def _create_input_port_message_iterator(self, input_port):
utils._check_type(input_port, bt2_port._UserComponentInputPort)
)
if msg_iter_ptr is None:
- raise bt2.CreationError('cannot create message iterator object')
+ raise bt2._MemoryError('cannot create message iterator object')
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: