Class PaginationSubscription<ResponseT>
- java.lang.Object
-
- software.amazon.awssdk.core.pagination.async.PaginationSubscription<ResponseT>
-
- All Implemented Interfaces:
org.reactivestreams.Subscription
- Direct Known Subclasses:
ItemsSubscription,ResponsesSubscription
public abstract class PaginationSubscription<ResponseT> extends Object implements org.reactivestreams.Subscription
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePaginationSubscription.Builder<TypeToBuildT extends PaginationSubscription,BuilderT extends PaginationSubscription.Builder>protected static classPaginationSubscription.BuilderImpl<TypeToBuildT extends PaginationSubscription,BuilderT extends PaginationSubscription.Builder>
-
Field Summary
Fields Modifier and Type Field Description protected ResponseTcurrentPageprotected AsyncPageFetcher<ResponseT>nextPageFetcherprotected AtomicLongoutstandingRequestsprotected org.reactivestreams.Subscribersubscriber
-
Constructor Summary
Constructors Modifier Constructor Description protectedPaginationSubscription(PaginationSubscription.BuilderImpl builder)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcancel()protected voidcleanup()protected voidcompleteSubscription()protected abstract voidhandleRequests()Recursive method to deal with requests until there are no outstandingRequests or no more pages.protected booleanhasNextPage()protected booleanisTerminated()voidrequest(long n)protected voidstopTask()
-
-
-
Field Detail
-
outstandingRequests
protected AtomicLong outstandingRequests
-
subscriber
protected final org.reactivestreams.Subscriber subscriber
-
nextPageFetcher
protected final AsyncPageFetcher<ResponseT> nextPageFetcher
-
currentPage
protected volatile ResponseT currentPage
-
-
Constructor Detail
-
PaginationSubscription
protected PaginationSubscription(PaginationSubscription.BuilderImpl builder)
-
-
Method Detail
-
request
public void request(long n)
- Specified by:
requestin interfaceorg.reactivestreams.Subscription
-
handleRequests
protected abstract void handleRequests()
Recursive method to deal with requests until there are no outstandingRequests or no more pages.
-
cancel
public void cancel()
- Specified by:
cancelin interfaceorg.reactivestreams.Subscription
-
hasNextPage
protected boolean hasNextPage()
-
completeSubscription
protected void completeSubscription()
-
isTerminated
protected boolean isTerminated()
-
stopTask
protected void stopTask()
-
cleanup
protected void cleanup()
-
-