projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lib: make can_seek_ns_from_origin logic use `can_seek_forward` property of iterator
[babeltrace.git]
/
src
/
plugins
/
utils
/
muxer
/
muxer.c
diff --git
a/src/plugins/utils/muxer/muxer.c
b/src/plugins/utils/muxer/muxer.c
index 54238eb48f38ac2fc211efbe1784eb7ef20177a7..3e4d42057b1d49e0a00814cdd6f063f9f11da634 100644
(file)
--- a/
src/plugins/utils/muxer/muxer.c
+++ b/
src/plugins/utils/muxer/muxer.c
@@
-1148,11
+1148,13
@@
void destroy_muxer_msg_iter(struct muxer_msg_iter *muxer_msg_iter)
static
bt_component_class_message_iterator_initialize_method_status
muxer_msg_iter_init_upstream_iterators(struct muxer_comp *muxer_comp,
static
bt_component_class_message_iterator_initialize_method_status
muxer_msg_iter_init_upstream_iterators(struct muxer_comp *muxer_comp,
- struct muxer_msg_iter *muxer_msg_iter)
+ struct muxer_msg_iter *muxer_msg_iter,
+ struct bt_self_message_iterator_configuration *config)
{
int64_t count;
int64_t i;
bt_component_class_message_iterator_initialize_method_status status;
{
int64_t count;
int64_t i;
bt_component_class_message_iterator_initialize_method_status status;
+ bool can_seek_forward = true;
count = bt_component_filter_get_input_port_count(
bt_self_component_filter_as_component_filter(
count = bt_component_filter_get_input_port_count(
bt_self_component_filter_as_component_filter(
@@
-1203,8
+1205,19
@@
muxer_msg_iter_init_upstream_iterators(struct muxer_comp *muxer_comp,
/* muxer_msg_iter_add_upstream_msg_iter() logs errors */
goto end;
}
/* muxer_msg_iter_add_upstream_msg_iter() logs errors */
goto end;
}
+
+ can_seek_forward = can_seek_forward &&
+ bt_self_component_port_input_message_iterator_can_seek_forward(
+ upstream_msg_iter);
}
}
+ /*
+ * This iterator can seek forward if all of its iterators can seek
+ * forward.
+ */
+ bt_self_message_iterator_configuration_set_can_seek_forward(
+ config, can_seek_forward);
+
status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_OK;
end:
status = BT_COMPONENT_CLASS_MESSAGE_ITERATOR_INITIALIZE_METHOD_STATUS_OK;
end:
@@
-1272,7
+1285,7
@@
bt_component_class_message_iterator_initialize_method_status muxer_msg_iter_init
}
status = muxer_msg_iter_init_upstream_iterators(muxer_comp,
}
status = muxer_msg_iter_init_upstream_iterators(muxer_comp,
- muxer_msg_iter);
+ muxer_msg_iter
, config
);
if (status) {
BT_COMP_LOGE("Cannot initialize connected input ports for muxer component's message iterator: "
"comp-addr=%p, muxer-comp-addr=%p, "
if (status) {
BT_COMP_LOGE("Cannot initialize connected input ports for muxer component's message iterator: "
"comp-addr=%p, muxer-comp-addr=%p, "
This page took
0.023217 seconds
and
4
git commands to generate.