Package io.servicetalk.http.api
Class StreamingHttpConnectionFilter
- java.lang.Object
-
- io.servicetalk.http.api.StreamingHttpConnectionFilter
-
- All Implemented Interfaces:
AsyncCloseable,ListenableAsyncCloseable,FilterableStreamingHttpConnection,StreamingHttpRequester,StreamingHttpRequestFactory
public class StreamingHttpConnectionFilter extends java.lang.Object implements FilterableStreamingHttpConnection
AStreamingHttpConnectionthat delegates all methods to a differentStreamingHttpConnection.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedStreamingHttpConnectionFilter(FilterableStreamingHttpConnection delegate)Create a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CompletablecloseAsync()Used to close/shutdown a resource.CompletablecloseAsyncGracefully()Used to close/shutdown a resource, similar toAsyncCloseable.closeAsync(), but attempts to cleanup state before abruptly closing.HttpConnectionContextconnectionContext()Get theHttpConnectionContext.protected FilterableStreamingHttpConnectiondelegate()Get theFilterableStreamingHttpConnectionthis method delegates to.HttpExecutionContextexecutionContext()Get theHttpExecutionContextused during construction of this object.StreamingHttpResponseFactoryhttpResponseFactory()Get aStreamingHttpResponseFactory.StreamingHttpRequestnewRequest(HttpRequestMethod method, java.lang.String requestTarget)Create a newHttpRequestFactory.CompletableonClose()Returns aCompletablethat is notified once theListenableAsyncCloseablewas closed.Single<StreamingHttpResponse>request(HttpExecutionStrategy strategy, StreamingHttpRequest request)Send arequestusing the specifiedstrategy.java.lang.StringtoString()<T> Publisher<? extends T>transportEventStream(HttpEventKey<T> eventKey)Returns aPublisherthat gives the current value of a transport event as well as subsequent changes to the event value as long as thePublisherSource.Subscriberhas expressed enough demand.
-
-
-
Constructor Detail
-
StreamingHttpConnectionFilter
protected StreamingHttpConnectionFilter(FilterableStreamingHttpConnection delegate)
Create a new instance.- Parameters:
delegate- TheFilterableStreamingHttpConnectionto delegate all calls to.
-
-
Method Detail
-
request
public Single<StreamingHttpResponse> request(HttpExecutionStrategy strategy, StreamingHttpRequest request)
Description copied from interface:StreamingHttpRequesterSend arequestusing the specifiedstrategy.- Specified by:
requestin interfaceStreamingHttpRequester- Parameters:
strategy-HttpExecutionStrategyto use for executing the request.request- the request to send.- Returns:
- The response.
-
connectionContext
public HttpConnectionContext connectionContext()
Description copied from interface:FilterableStreamingHttpConnectionGet theHttpConnectionContext.- Specified by:
connectionContextin interfaceFilterableStreamingHttpConnection- Returns:
- the
HttpConnectionContext.
-
transportEventStream
public <T> Publisher<? extends T> transportEventStream(HttpEventKey<T> eventKey)
Description copied from interface:FilterableStreamingHttpConnectionReturns aPublisherthat gives the current value of a transport event as well as subsequent changes to the event value as long as thePublisherSource.Subscriberhas expressed enough demand.This is designed for events produced by the transport, and consumed by filters interested in transport behavior which is not directly involved in the data path.
- Specified by:
transportEventStreamin interfaceFilterableStreamingHttpConnection- Type Parameters:
T- Type of the event value.- Parameters:
eventKey- Name of the event to fetch.- Returns:
Publisherfor the event values.
-
executionContext
public HttpExecutionContext 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
public StreamingHttpResponseFactory httpResponseFactory()
Description copied from interface:StreamingHttpRequesterGet aStreamingHttpResponseFactory.- Specified by:
httpResponseFactoryin interfaceStreamingHttpRequester- Returns:
- a
StreamingHttpResponseFactory.
-
onClose
public Completable onClose()
Description copied from interface:ListenableAsyncCloseableReturns aCompletablethat is notified once theListenableAsyncCloseablewas closed.- Specified by:
onClosein interfaceListenableAsyncCloseable- Returns:
- the
Completablethat is notified on close.
-
closeAsync
public Completable 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
public Completable 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
public final StreamingHttpRequest newRequest(HttpRequestMethod method, java.lang.String requestTarget)
Description copied from interface:StreamingHttpRequestFactoryCreate a newHttpRequestFactory.- Specified by:
newRequestin interfaceStreamingHttpRequestFactory- Parameters:
method- TheHttpRequestMethod.requestTarget- The request target.- Returns:
- a new
HttpRequestFactory.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
delegate
protected final FilterableStreamingHttpConnection delegate()
Get theFilterableStreamingHttpConnectionthis method delegates to.- Returns:
- the
FilterableStreamingHttpConnectionthis method delegates to.
-
-