_GenericMessageIterator.can_seek_beginning and
_UserMessageIterator._user_can_seek_beginning are currently properties.
We will add the equivalent for can_seek_ns_from_origin, but this one
requires a parameter (the ns_from_origin value), so it can't be a
property, it has to be a method. For consistency, change the
can_seek_beginning ones to be methods.
Change-Id: Ic2c5b54908753dc7498fb1d0f94022301f766a15
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/2017
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Francis Deslauriers <francis.deslauriers@efficios.com>
return bt2_message._create_from_ptr(msg_ptr)
return bt2_message._create_from_ptr(msg_ptr)
def can_seek_beginning(self):
status, res = self._can_seek_beginning(self._ptr)
utils._handle_func_status(
def can_seek_beginning(self):
status, res = self._can_seek_beginning(self._ptr)
utils._handle_func_status(
msg._get_ref(msg._ptr)
return int(msg._ptr)
msg._get_ref(msg._ptr)
return int(msg._ptr)
def _bt_can_seek_beginning_from_native(self):
# Here, we mimic the behavior of the C API:
#
def _bt_can_seek_beginning_from_native(self):
# Here, we mimic the behavior of the C API:
#
- # - If the iterator has a _user_can_seek_beginning attribute,
+ # - If the iterator has a _user_can_seek_beginning method,
# read it and use that result.
# - Otherwise, the presence or absence of a `_user_seek_beginning`
# method indicates whether the iterator can seek beginning.
if hasattr(self, '_user_can_seek_beginning'):
# read it and use that result.
# - Otherwise, the presence or absence of a `_user_seek_beginning`
# method indicates whether the iterator can seek beginning.
if hasattr(self, '_user_can_seek_beginning'):
- can_seek_beginning = self._user_can_seek_beginning
+ can_seek_beginning = self._user_can_seek_beginning()
utils._check_bool(can_seek_beginning)
return can_seek_beginning
else:
utils._check_bool(can_seek_beginning)
return can_seek_beginning
else:
py_iter = bt_self_message_iterator_get_data(self_message_iterator);
BT_ASSERT(py_iter);
py_iter = bt_self_message_iterator_get_data(self_message_iterator);
BT_ASSERT(py_iter);
- py_result = PyObject_GetAttrString(py_iter, "_bt_can_seek_beginning_from_native");
+ py_result = PyObject_CallMethod(py_iter,
+ "_bt_can_seek_beginning_from_native", NULL);
BT_ASSERT(!py_result || PyBool_Check(py_result));
BT_ASSERT(!py_result || PyBool_Check(py_result));
def _user_seek_beginning(self):
self._upstream_iter.seek_beginning()
def _user_seek_beginning(self):
self._upstream_iter.seek_beginning()
def _user_can_seek_beginning(self):
def _user_can_seek_beginning(self):
- return self._upstream_iter.can_seek_beginning
+ return self._upstream_iter.can_seek_beginning()
class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyFilterIter):
def __init__(self, params, obj):
class MyFilter(bt2._UserFilterComponent, message_iterator_class=MyFilterIter):
def __init__(self, params, obj):
MySourceIter._user_seek_beginning = user_seek_beginning
if user_can_seek_beginning is not None:
MySourceIter._user_seek_beginning = user_seek_beginning
if user_can_seek_beginning is not None:
- MySourceIter._user_can_seek_beginning = property(user_can_seek_beginning)
+ MySourceIter._user_can_seek_beginning = user_can_seek_beginning
class MySource(bt2._UserSourceComponent, message_iterator_class=MySourceIter):
def __init__(self, params, obj):
class MySource(bt2._UserSourceComponent, message_iterator_class=MySourceIter):
def __init__(self, params, obj):
def __next__(self):
return next(self._upstream_iter)
def __next__(self):
return next(self._upstream_iter)
def _user_can_seek_beginning(self):
def _user_can_seek_beginning(self):
- return self._upstream_iter.can_seek_beginning
+ return self._upstream_iter.can_seek_beginning()
def _user_seek_beginning(self):
self._upstream_iter.seek_beginning()
def _user_seek_beginning(self):
self._upstream_iter.seek_beginning()
def _user_consume(self):
nonlocal can_seek_beginning
def _user_consume(self):
nonlocal can_seek_beginning
- can_seek_beginning = self._msg_iter.can_seek_beginning
+ can_seek_beginning = self._msg_iter.can_seek_beginning()
def _user_can_seek_beginning(self):
nonlocal input_port_iter_can_seek_beginning
def _user_can_seek_beginning(self):
nonlocal input_port_iter_can_seek_beginning
def _user_consume(self):
nonlocal can_seek_beginning
def _user_consume(self):
nonlocal can_seek_beginning
- can_seek_beginning = self._msg_iter.can_seek_beginning
+ can_seek_beginning = self._msg_iter.can_seek_beginning()
def _user_seek_beginning(self):
pass
def _user_seek_beginning(self):
pass
def _user_consume(self):
nonlocal can_seek_beginning
def _user_consume(self):
nonlocal can_seek_beginning
- can_seek_beginning = self._msg_iter.can_seek_beginning
+ can_seek_beginning = self._msg_iter.can_seek_beginning()
graph = _setup_seek_test(MySink)
can_seek_beginning = None
graph = _setup_seek_test(MySink)
can_seek_beginning = None
def _user_consume(self):
# This is expected to raise.
def _user_consume(self):
# This is expected to raise.
- self._msg_iter.can_seek_beginning
+ self._msg_iter.can_seek_beginning()
def _user_can_seek_beginning(self):
raise ValueError('moustiquaire')
def _user_can_seek_beginning(self):
raise ValueError('moustiquaire')
def _user_consume(self):
# This is expected to raise.
def _user_consume(self):
# This is expected to raise.
- self._msg_iter.can_seek_beginning
+ self._msg_iter.can_seek_beginning()
def _user_can_seek_beginning(self):
return 'Amqui'
def _user_can_seek_beginning(self):
return 'Amqui'