Package io.servicetalk.http.api
Class ReservedStreamingHttpConnectionFilter
- java.lang.Object
-
- io.servicetalk.http.api.ReservedStreamingHttpConnectionFilter
-
- All Implemented Interfaces:
AsyncCloseable
,ListenableAsyncCloseable
,FilterableReservedStreamingHttpConnection
,FilterableStreamingHttpConnection
,StreamingHttpRequester
,StreamingHttpRequestFactory
public class ReservedStreamingHttpConnectionFilter extends java.lang.Object implements FilterableReservedStreamingHttpConnection
AReservedStreamingHttpConnectionFilter
that delegates all methods to a differentReservedStreamingHttpConnectionFilter
.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ReservedStreamingHttpConnectionFilter(FilterableReservedStreamingHttpConnection delegate)
Create a new instance.
-
Method Summary
-
-
-
Constructor Detail
-
ReservedStreamingHttpConnectionFilter
protected ReservedStreamingHttpConnectionFilter(FilterableReservedStreamingHttpConnection delegate)
Create a new instance.- Parameters:
delegate
- TheFilterableReservedStreamingHttpConnection
to delegate all calls to
-
-
Method Detail
-
releaseAsync
public Completable releaseAsync()
Description copied from interface:FilterableReservedStreamingHttpConnection
Releases this reservedFilterableStreamingHttpConnection
to be used for subsequent requests. This method must be idempotent, i.e. calling multiple times must not have side-effects.- Specified by:
releaseAsync
in interfaceFilterableReservedStreamingHttpConnection
- Returns:
- the
Completable
that is notified on releaseAsync.
-
connectionContext
public HttpConnectionContext connectionContext()
Description copied from interface:FilterableStreamingHttpConnection
Get theHttpConnectionContext
.- Specified by:
connectionContext
in interfaceFilterableStreamingHttpConnection
- Returns:
- the
HttpConnectionContext
.
-
transportEventStream
public <T> Publisher<? extends T> transportEventStream(HttpEventKey<T> eventKey)
Description copied from interface:FilterableStreamingHttpConnection
Returns aPublisher
that gives the current value of a transport event as well as subsequent changes to the event value as long as thePublisherSource.Subscriber
has 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:
transportEventStream
in interfaceFilterableStreamingHttpConnection
- Type Parameters:
T
- Type of the event value.- Parameters:
eventKey
- Name of the event to fetch.- Returns:
Publisher
for the event values.
-
request
public final Single<StreamingHttpResponse> request(HttpExecutionStrategy strategy, StreamingHttpRequest request)
Description copied from interface:StreamingHttpRequester
Send arequest
using the specifiedstrategy
.- Specified by:
request
in interfaceStreamingHttpRequester
- Parameters:
strategy
-HttpExecutionStrategy
to use for executing the request.request
- the request to send.- Returns:
- The response.
-
executionContext
public HttpExecutionContext executionContext()
Description copied from interface:StreamingHttpRequester
Get theHttpExecutionContext
used 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:
executionContext
in interfaceStreamingHttpRequester
- Returns:
- the
HttpExecutionContext
used during construction of this object.
-
httpResponseFactory
public StreamingHttpResponseFactory httpResponseFactory()
Description copied from interface:StreamingHttpRequester
Get aStreamingHttpResponseFactory
.- Specified by:
httpResponseFactory
in interfaceStreamingHttpRequester
- Returns:
- a
StreamingHttpResponseFactory
.
-
onClose
public Completable onClose()
Description copied from interface:ListenableAsyncCloseable
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.- Specified by:
onClose
in interfaceListenableAsyncCloseable
- Returns:
- the
Completable
that is notified on close.
-
closeAsync
public Completable closeAsync()
Description copied from interface:AsyncCloseable
Used to close/shutdown a resource.- Specified by:
closeAsync
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
closeAsyncGracefully
public Completable closeAsyncGracefully()
Description copied from interface:AsyncCloseable
Used 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:
closeAsyncGracefully
in interfaceAsyncCloseable
- Returns:
- A
Completable
that is notified once the close is complete.
-
newRequest
public StreamingHttpRequest newRequest(HttpRequestMethod method, java.lang.String requestTarget)
Description copied from interface:StreamingHttpRequestFactory
Create a newHttpRequestFactory
.- Specified by:
newRequest
in interfaceStreamingHttpRequestFactory
- Parameters:
method
- TheHttpRequestMethod
.requestTarget
- The request target.- Returns:
- a new
HttpRequestFactory
.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
delegate
protected final FilterableReservedStreamingHttpConnection delegate()
Get theReservedStreamingHttpConnection
this method delegates to.- Returns:
- the
ReservedStreamingHttpConnection
this method delegates to.
-
request
protected Single<StreamingHttpResponse> request(StreamingHttpRequester delegate, HttpExecutionStrategy strategy, StreamingHttpRequest request)
Called when the filter needs to delegate the request using the providedStreamingHttpRequester
on which to callStreamingHttpRequester.request(HttpExecutionStrategy, StreamingHttpRequest)
.- Parameters:
delegate
- TheStreamingHttpRequester
to delegate requests to.strategy
- TheHttpExecutionStrategy
to use for executing the request.request
- The request to delegate.- Returns:
- the response.
-
-