+ if (!py_result) {
+ status = py_exc_to_status_message_iterator_clear(self_message_iterator);
+ goto end;
+ }
+
+ BT_ASSERT(py_result == Py_None);
+
+ status = BT_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHOD_STATUS_OK;
+
+end:
+ Py_XDECREF(py_result);
+
+ return status;
+}
+
+static
+bt_message_iterator_class_can_seek_ns_from_origin_method_status
+component_class_can_seek_ns_from_origin(
+ bt_self_message_iterator *self_message_iterator,
+ int64_t ns_from_origin, bt_bool *can_seek)
+{
+ PyObject *py_iter;
+ PyObject *py_result = NULL;
+ bt_message_iterator_class_can_seek_ns_from_origin_method_status status;
+
+ py_iter = bt_self_message_iterator_get_data(self_message_iterator);
+ BT_ASSERT(py_iter);
+
+ py_result = PyObject_CallMethod(py_iter,
+ "_bt_can_seek_ns_from_origin_from_native", "L", ns_from_origin);
+ if (!py_result) {
+ status = py_exc_to_status_message_iterator_clear(self_message_iterator);
+ goto end;
+ }
+
+ BT_ASSERT(PyBool_Check(py_result));
+ *can_seek = PyObject_IsTrue(py_result);
+
+ status = BT_MESSAGE_ITERATOR_CLASS_CAN_SEEK_NS_FROM_ORIGIN_METHOD_STATUS_OK;
+
+end:
+ Py_XDECREF(py_result);
+
+ return status;
+}
+
+static
+bt_message_iterator_class_seek_ns_from_origin_method_status
+component_class_seek_ns_from_origin(
+ bt_self_message_iterator *self_message_iterator,
+ int64_t ns_from_origin)
+{
+ PyObject *py_iter;
+ PyObject *py_result;
+ bt_message_iterator_class_seek_ns_from_origin_method_status status;
+
+ py_iter = bt_self_message_iterator_get_data(self_message_iterator);
+ BT_ASSERT(py_iter);
+
+ py_result = PyObject_CallMethod(py_iter,
+ "_bt_seek_ns_from_origin_from_native", "L", ns_from_origin);
+ if (!py_result) {
+ status = py_exc_to_status_message_iterator_clear(self_message_iterator);
+ goto end;
+ }
+
+
+ BT_ASSERT(py_result == Py_None);
+
+ status = BT_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHOD_STATUS_OK;
+
+end: