(*bt_self_component_port_input_message_iterator_seek_beginning_method)(
void *);
-typedef bt_bool
+typedef enum bt_component_class_message_iterator_can_seek_ns_from_origin_method_status
(*bt_self_component_port_input_message_iterator_can_seek_ns_from_origin_method)(
- void *, int64_t);
+ void *, int64_t, bt_bool *);
-typedef bt_bool
+typedef enum bt_component_class_message_iterator_can_seek_beginning_method_status
(*bt_self_component_port_input_message_iterator_can_seek_beginning_method)(
- void *);
+ void *, bt_bool *);
+
+struct bt_self_message_iterator_configuration {
+ bool frozen;
+ bool can_seek_forward;
+};
struct bt_self_component_port_input_message_iterator {
struct bt_object base;
struct bt_port *upstream_port; /* Weak */
struct bt_connection *connection; /* Weak */
struct bt_graph *graph; /* Weak */
+ struct bt_self_message_iterator_configuration config;
/*
* Array of
struct {
bt_self_component_port_input_message_iterator_next_method next;
+
+ /* These two are always both set or both unset. */
bt_self_component_port_input_message_iterator_seek_ns_from_origin_method seek_ns_from_origin;
- bt_self_component_port_input_message_iterator_seek_beginning_method seek_beginning;
bt_self_component_port_input_message_iterator_can_seek_ns_from_origin_method can_seek_ns_from_origin;
+
+ /* These two are always both set or both unset. */
+ bt_self_component_port_input_message_iterator_seek_beginning_method seek_beginning;
bt_self_component_port_input_message_iterator_can_seek_beginning_method can_seek_beginning;
} methods;