Package io.servicetalk.http.api
Interface BlockingStreamingHttpService
- All Superinterfaces:
AutoCloseable
,ExecutionStrategyInfluencer<HttpExecutionStrategy>
,GracefulAutoCloseable
,HttpExecutionStrategyInfluencer
,HttpServiceBase
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface
public interface BlockingStreamingHttpService
extends HttpServiceBase, GracefulAutoCloseable
The equivalent of
StreamingHttpService
but with synchronous/blocking APIs instead of asynchronous APIs.-
Method Summary
Modifier and TypeMethodDescriptiondefault void
close()
void
handle
(HttpServiceContext ctx, BlockingStreamingHttpRequest request, BlockingStreamingHttpServerResponse response) Handles a single HTTP request.default HttpExecutionStrategy
Return anExecutionStrategy
that describes the offloads required by the influencer.Methods inherited from interface io.servicetalk.concurrent.GracefulAutoCloseable
closeGracefully
Methods inherited from interface io.servicetalk.http.api.HttpExecutionStrategyInfluencer
influenceStrategy
-
Method Details
-
handle
void handle(HttpServiceContext ctx, BlockingStreamingHttpRequest request, BlockingStreamingHttpServerResponse response) throws Exception Handles a single HTTP request.- Parameters:
ctx
- Context of the service.request
- to handle.response
- to send to the client. The implementation of this method is responsible for closingHttpPayloadWriter
orHttpOutputStream
after meta-data is sent and payload body is written.- Throws:
Exception
- If an exception occurs during request processing.
-
requiredOffloads
Description copied from interface:HttpExecutionStrategyInfluencer
Return anExecutionStrategy
that describes the offloads required by the influencer.The provided default implementation requests offloading of all operations. Implementations that require no offloading should be careful to return
HttpExecutionStrategies.offloadNone()
rather thanHttpExecutionStrategies.offloadNever()
. Implementations should avoid returningHttpExecutionStrategies.defaultStrategy()
, instead returning the strategy they require orHttpExecutionStrategies.offloadAll()
if offloading for all paths is required (safe default).- Specified by:
requiredOffloads
in interfaceExecutionStrategyInfluencer<HttpExecutionStrategy>
- Specified by:
requiredOffloads
in interfaceHttpExecutionStrategyInfluencer
- Returns:
- the
ExecutionStrategy
required by the influencer.
-
close
- Specified by:
close
in interfaceAutoCloseable
- Throws:
Exception
-