lib: introduce bt_message_iterator_class
[babeltrace.git] / src / lib / graph / message / iterator.h
index 8014d1fad536c27d8fbd97772a7c014035f17e43..894a914cb68613cde5eeba2792c46225374af0f9 100644 (file)
@@ -65,26 +65,31 @@ enum bt_self_component_port_input_message_iterator_state {
        BT_SELF_COMPONENT_PORT_INPUT_MESSAGE_ITERATOR_STATE_LAST_SEEKING_RETURNED_ERROR,
 };
 
-typedef enum bt_component_class_message_iterator_next_method_status
+typedef enum bt_message_iterator_class_next_method_status
 (*bt_self_component_port_input_message_iterator_next_method)(
                void *, bt_message_array_const, uint64_t, uint64_t *);
 
-typedef enum bt_component_class_message_iterator_seek_ns_from_origin_method_status
+typedef enum bt_message_iterator_class_seek_ns_from_origin_method_status
 (*bt_self_component_port_input_message_iterator_seek_ns_from_origin_method)(
                void *, int64_t);
 
-typedef enum bt_component_class_message_iterator_seek_beginning_method_status
+typedef enum bt_message_iterator_class_seek_beginning_method_status
 (*bt_self_component_port_input_message_iterator_seek_beginning_method)(
                void *);
 
-typedef enum bt_component_class_message_iterator_can_seek_ns_from_origin_method_status
+typedef enum bt_message_iterator_class_can_seek_ns_from_origin_method_status
 (*bt_self_component_port_input_message_iterator_can_seek_ns_from_origin_method)(
                void *, int64_t, bt_bool *);
 
-typedef enum bt_component_class_message_iterator_can_seek_beginning_method_status
+typedef enum bt_message_iterator_class_can_seek_beginning_method_status
 (*bt_self_component_port_input_message_iterator_can_seek_beginning_method)(
                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;
        GPtrArray *msgs;
@@ -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.023855 seconds and 4 git commands to generate.