Package io.servicetalk.http.api
Interface HttpConnection
-
- All Superinterfaces:
AsyncCloseable,java.lang.AutoCloseable,GracefulAutoCloseable,HttpRequester,HttpRequestFactory,ListenableAsyncCloseable
- All Known Subinterfaces:
ReservedHttpConnection
public interface HttpConnection extends HttpRequester, GracefulAutoCloseable
Represents a single fixed connection to a HTTP server.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default BlockingHttpConnectionasBlockingConnection()Convert thisHttpConnectionto theBlockingHttpConnectionAPI.default BlockingStreamingHttpConnectionasBlockingStreamingConnection()Convert thisHttpConnectionto theBlockingStreamingHttpConnectionAPI.StreamingHttpConnectionasStreamingConnection()Convert thisHttpConnectionto theStreamingHttpConnectionAPI.default voidclose()default voidcloseGracefully()Used to close/shutdown a resource, similar toAutoCloseable.close(), but attempts to cleanup state before abruptly closing.HttpConnectionContextconnectionContext()Get theHttpConnectionContext.Single<HttpResponse>request(HttpRequest request)Send arequest.<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.-
Methods inherited from interface io.servicetalk.concurrent.api.AsyncCloseable
closeAsync, closeAsyncGracefully
-
Methods inherited from interface io.servicetalk.http.api.HttpRequester
executionContext, httpResponseFactory, request
-
Methods inherited from interface io.servicetalk.http.api.HttpRequestFactory
connect, delete, get, head, newRequest, options, patch, post, put, trace
-
Methods inherited from interface io.servicetalk.concurrent.api.ListenableAsyncCloseable
onClose
-
-
-
-
Method Detail
-
request
Single<HttpResponse> request(HttpRequest request)
Send arequest.- Parameters:
request- the request to send.- Returns:
- The response.
-
connectionContext
HttpConnectionContext connectionContext()
Get theHttpConnectionContext.- Returns:
- the
HttpConnectionContext.
-
transportEventStream
<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.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.
- Type Parameters:
T- Type of the event value.- Parameters:
eventKey- Name of the event to fetch.- Returns:
Publisherfor the event values.
-
asStreamingConnection
StreamingHttpConnection asStreamingConnection()
Convert thisHttpConnectionto theStreamingHttpConnectionAPI.- Returns:
- a
StreamingHttpConnectionrepresentation of thisHttpConnection.
-
asBlockingStreamingConnection
default BlockingStreamingHttpConnection asBlockingStreamingConnection()
Convert thisHttpConnectionto theBlockingStreamingHttpConnectionAPI.- Returns:
- a
BlockingStreamingHttpConnectionrepresentation of thisHttpConnection.
-
asBlockingConnection
default BlockingHttpConnection asBlockingConnection()
Convert thisHttpConnectionto theBlockingHttpConnectionAPI.- Returns:
- a
BlockingHttpConnectionrepresentation of thisHttpConnection.
-
close
default void close() throws java.lang.Exception- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.lang.Exception
-
closeGracefully
default void closeGracefully() throws java.lang.ExceptionDescription copied from interface:GracefulAutoCloseableUsed to close/shutdown a resource, similar toAutoCloseable.close(), 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 toAutoCloseable.close().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
AutoCloseable.close().- Specified by:
closeGracefullyin interfaceGracefulAutoCloseable- Throws:
java.lang.Exception- if graceful closure failed.
-
-