Share Paging Termination Between PagedFlux and PagedIterable #26139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Fixes #26064
This PR resolves an issue where
PagedFlux
andPagedIterable
handled terminating the paged request stream based on the continuation token received as they have divergent logic to handle idiosyncrasies of async vs sync and the usage of Reactor. Now,PagedIterable
will use the paging terminationPredicate
from the backingPagedFlux
and pass that into theContinuationState
that is being maintained during the lifetime of a paged request stream. In this changeContinuationState
now takes thePredicate
as a constructor argument instead of being passed when the continuation token is being updated to better align with the requirement of having thePredicate
. This has simplified the divergent logic betweenPagedFlux
andPagedIterable
to a constructor call instead of being in a few places where theContinuationState
is being updated.All SDK Contribution checklist:
General Guidelines and Best Practices
Testing Guidelines