lib: make it mandatory to have seek_X if can_seek_X is defined
[babeltrace.git] / src / lib / graph / message / iterator.h
index 82689f61da6674a5975c22ea8bc217527e30ddda..52a1c046530c3e018d23a44a5dae88c90b78f33e 100644 (file)
@@ -77,13 +77,18 @@ typedef enum bt_component_class_message_iterator_seek_beginning_method_status
 (*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;
@@ -92,6 +97,7 @@ struct bt_self_component_port_input_message_iterator {
        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
@@ -116,9 +122,13 @@ struct bt_self_component_port_input_message_iterator {
 
        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;
 
This page took 0.023537 seconds and 4 git commands to generate.