Class StreamingHttpConnectionFilter
- All Implemented Interfaces:
AsyncCloseable
,ListenableAsyncCloseable
,FilterableStreamingHttpConnection
,StreamingHttpRequester
,StreamingHttpRequestFactory
- Direct Known Subclasses:
ReservedStreamingHttpConnectionFilter
StreamingHttpConnection
that delegates all methods to a different StreamingHttpConnection
.- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Create 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.Get theHttpConnectionContext
.protected FilterableStreamingHttpConnection
delegate()
Get theFilterableStreamingHttpConnection
this method delegates to.Get theHttpExecutionContext
used during construction of this object.Get aStreamingHttpResponseFactory
.final StreamingHttpRequest
newRequest
(HttpRequestMethod method, String requestTarget) Create a newHttpRequestFactory
.onClose()
Returns aCompletable
that is notified once theListenableAsyncCloseable
was closed.Returns aCompletable
that is notified when closing begins.request
(StreamingHttpRequest request) Send arequest
.toString()
<T> Publisher<? extends T>
transportEventStream
(HttpEventKey<T> eventKey) 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.
-
Constructor Details
-
StreamingHttpConnectionFilter
Create a new instance.- Parameters:
delegate
- TheFilterableStreamingHttpConnection
to delegate all calls to.
-
-
Method Details
-
request
Description copied from interface:StreamingHttpRequester
Send arequest
.- Specified by:
request
in interfaceStreamingHttpRequester
- Parameters:
request
- the request to send.- Returns:
- The response.
-
connectionContext
Description copied from interface:FilterableStreamingHttpConnection
Get theHttpConnectionContext
.- Specified by:
connectionContext
in interfaceFilterableStreamingHttpConnection
- Returns:
- the
HttpConnectionContext
.
-
transportEventStream
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.
-
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
Description copied from interface:StreamingHttpRequester
Get aStreamingHttpResponseFactory
.- Specified by:
httpResponseFactory
in interfaceStreamingHttpRequester
- Returns:
- a
StreamingHttpResponseFactory
.
-
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.
-
onClosing
Description copied from interface:ListenableAsyncCloseable
Returns aCompletable
that 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: close
header).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:
onClosing
in interfaceListenableAsyncCloseable
- Returns:
- a
Completable
that is notified when closing begins.
-
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
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
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
-
delegate
Get theFilterableStreamingHttpConnection
this method delegates to.- Returns:
- the
FilterableStreamingHttpConnection
this method delegates to.
-