Class StreamingHttpClientFilter
- All Implemented Interfaces:
AsyncCloseable,ListenableAsyncCloseable,GracefulAutoCloseable,FilterableStreamingHttpClient,StreamingHttpRequester,StreamingHttpRequestFactory,AutoCloseable
StreamingHttpClient that delegates all methods to a different StreamingHttpClient.- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreate a new instance. -
Method Summary
Modifier and TypeMethodDescriptionUsed to close/shutdown a resource.Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing.protected final FilterableStreamingHttpClientdelegate()Get theFilterableStreamingHttpClientthis method delegates to.Get theHttpExecutionContextused during construction of this object.Get aStreamingHttpResponseFactory.newRequest(HttpRequestMethod method, String requestTarget) Create a newHttpRequestFactory.onClose()Returns aCompletablethat is notified once theListenableAsyncCloseablewas closed.Returns aCompletablethat is notified when closing begins.final Single<StreamingHttpResponse>request(StreamingHttpRequest request) Send arequest.protected Single<StreamingHttpResponse>request(StreamingHttpRequester delegate, StreamingHttpRequest request) Called when the filter needs to delegate the request using the providedStreamingHttpRequesteron which to callStreamingHttpRequester.request(StreamingHttpRequest).Single<? extends FilterableReservedStreamingHttpConnection>reserveConnection(HttpRequestMetaData metaData) Reserve aStreamingHttpConnectionbased on providedHttpRequestMetaData.toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface io.servicetalk.http.api.StreamingHttpRequester
close, closeGracefully
-
Constructor Details
-
StreamingHttpClientFilter
Create a new instance.- Parameters:
delegate- TheFilterableStreamingHttpClientto delegate all calls to.
-
-
Method Details
-
request
Description copied from interface:StreamingHttpRequesterSend arequest.- Specified by:
requestin interfaceStreamingHttpRequester- Parameters:
request- the request to send.- Returns:
- The response.
-
reserveConnection
public Single<? extends FilterableReservedStreamingHttpConnection> reserveConnection(HttpRequestMetaData metaData) Description copied from interface:FilterableStreamingHttpClientReserve aStreamingHttpConnectionbased on providedHttpRequestMetaData.- Specified by:
reserveConnectionin interfaceFilterableStreamingHttpClient- Parameters:
metaData- Allows the underlying layers to know whatStreamingHttpConnections are valid to reserve for futurerequestswith the sameHttpRequestMetaData. For example this may provide some insight into shard or other info.- Returns:
- a
Singlethat provides aFilterableReservedStreamingHttpConnectionupon completion.
-
executionContext
Description copied from interface:StreamingHttpRequesterGet theHttpExecutionContextused during construction of this object.Note that the
ExecutionContext.ioExecutor()will not necessarily be associated with a specific thread unless that was how this object was built.- Specified by:
executionContextin interfaceStreamingHttpRequester- Returns:
- the
HttpExecutionContextused during construction of this object.
-
httpResponseFactory
Description copied from interface:StreamingHttpRequesterGet aStreamingHttpResponseFactory.- Specified by:
httpResponseFactoryin interfaceStreamingHttpRequester- Returns:
- a
StreamingHttpResponseFactory.
-
onClose
Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified once theListenableAsyncCloseablewas closed.- Specified by:
onClosein interfaceListenableAsyncCloseable- Returns:
- the
Completablethat is notified on close.
-
onClosing
Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified when closing begins.Closing begin might be when a close operation is initiated locally (e.g. subscribing to
AsyncCloseable.closeAsync()) or it could also be a transport event received from a remote peer (e.g. read aconnection: closeheader).For backwards compatibility this method maybe functionally equivalent to
ListenableAsyncCloseable.onClose(). Therefore, provides a best-effort leading edge notification of closing, but may fall back to notification on trailing edge.The goal of this method is often to notify asap when closing so this method may not be offloaded and care must be taken to avoid blocking if subscribing to the return
Completable.- Specified by:
onClosingin interfaceListenableAsyncCloseable- Returns:
- a
Completablethat is notified when closing begins.
-
closeAsync
Description copied from interface:AsyncCloseableUsed to close/shutdown a resource.- Specified by:
closeAsyncin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
closeAsyncGracefully
Description copied from interface:AsyncCloseableUsed to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing. This provides a hint that implementations can use to stop accepting new work and finish in flight work. This method is implemented on a "best effort" basis and may be equivalent toAsyncCloseable.closeAsync().Note: Implementations may or may not apply a timeout for this operation to complete, if a caller does not want to wait indefinitely, and are unsure if the implementation applies a timeout, it is advisable to apply a timeout and force a call to
AsyncCloseable.closeAsync().- Specified by:
closeAsyncGracefullyin interfaceAsyncCloseable- Returns:
- A
Completablethat is notified once the close is complete.
-
newRequest
Description copied from interface:StreamingHttpRequestFactoryCreate a newHttpRequestFactory.- Specified by:
newRequestin interfaceStreamingHttpRequestFactory- Parameters:
method- TheHttpRequestMethod.requestTarget- The request target.- Returns:
- a new
HttpRequestFactory.
-
toString
-
delegate
Get theFilterableStreamingHttpClientthis method delegates to.- Returns:
- the
FilterableStreamingHttpClientthis method delegates to.
-
request
protected Single<StreamingHttpResponse> request(StreamingHttpRequester delegate, StreamingHttpRequest request) Called when the filter needs to delegate the request using the providedStreamingHttpRequesteron which to callStreamingHttpRequester.request(StreamingHttpRequest).- Parameters:
delegate- TheStreamingHttpRequesterto delegate requests to.request- The request to delegate.- Returns:
- the response.
-