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 interface
PaginationSubscription.Builder<TypeToBuildT extends PaginationSubscription,BuilderT extends PaginationSubscription.Builder>
protected static class
PaginationSubscription.BuilderImpl<TypeToBuildT extends PaginationSubscription,BuilderT extends PaginationSubscription.Builder>
-
Field Summary
Fields Modifier and Type Field Description protected ResponseT
currentPage
protected AsyncPageFetcher<ResponseT>
nextPageFetcher
protected AtomicLong
outstandingRequests
protected org.reactivestreams.Subscriber
subscriber
-
Constructor Summary
Constructors Modifier Constructor Description protected
PaginationSubscription(PaginationSubscription.BuilderImpl builder)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cancel()
protected void
cleanup()
protected void
completeSubscription()
protected abstract void
handleRequests()
Recursive method to deal with requests until there are no outstandingRequests or no more pages.protected boolean
hasNextPage()
protected boolean
isTerminated()
void
request(long n)
protected void
stopTask()
-
-
-
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:
request
in 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:
cancel
in interfaceorg.reactivestreams.Subscription
-
hasNextPage
protected boolean hasNextPage()
-
completeSubscription
protected void completeSubscription()
-
isTerminated
protected boolean isTerminated()
-
stopTask
protected void stopTask()
-
cleanup
protected void cleanup()
-
-