Class ResponsePublisher<ResponseT extends SdkResponse>
- java.lang.Object
-
- software.amazon.awssdk.core.async.ResponsePublisher<ResponseT>
-
- Type Parameters:
ResponseT
- Pojo response type.
- All Implemented Interfaces:
org.reactivestreams.Publisher<ByteBuffer>
,SdkPublisher<ByteBuffer>
public final class ResponsePublisher<ResponseT extends SdkResponse> extends Object implements SdkPublisher<ByteBuffer>
AnSdkPublisher
that publishes response body content and also contains a reference to theSdkResponse
returned by the service.NOTE: You must subscribe to this publisher promptly to avoid automatic cancellation. The default timeout for subscribing is 60 seconds, which starts when the response body begins streaming. If
subscribe(Subscriber)
is not invoked before the timeout, the publisher will automatically cancel the underlying subscription to prevent resource leakage.The timeout can be customized by passing a
Duration
to the constructor, or disabled entirely by passingDuration.ZERO
or a negativeDuration
.- See Also:
AsyncResponseTransformer.toPublisher()
-
-
Constructor Summary
Constructors Constructor Description ResponsePublisher(ResponseT response, SdkPublisher<ByteBuffer> publisher)
ResponsePublisher(ResponseT response, SdkPublisher<ByteBuffer> publisher, Duration timeout)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
int
hashCode()
boolean
hasTimeoutTask()
ResponseT
response()
void
subscribe(org.reactivestreams.Subscriber<? super ByteBuffer> subscriber)
boolean
timeoutTaskDoneOrCancelled()
String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface software.amazon.awssdk.core.async.SdkPublisher
addTrailingData, buffer, doAfterOnCancel, doAfterOnComplete, doAfterOnError, filter, filter, flatMapIterable, limit, map, subscribe
-
-
-
-
Constructor Detail
-
ResponsePublisher
public ResponsePublisher(ResponseT response, SdkPublisher<ByteBuffer> publisher)
-
ResponsePublisher
public ResponsePublisher(ResponseT response, SdkPublisher<ByteBuffer> publisher, Duration timeout)
-
-
Method Detail
-
response
public ResponseT response()
- Returns:
- the unmarshalled response object from the service.
-
subscribe
public void subscribe(org.reactivestreams.Subscriber<? super ByteBuffer> subscriber)
- Specified by:
subscribe
in interfaceorg.reactivestreams.Publisher<ResponseT extends SdkResponse>
-
hasTimeoutTask
public boolean hasTimeoutTask()
-
timeoutTaskDoneOrCancelled
public boolean timeoutTaskDoneOrCancelled()
-
-