Class CoroutineContextService
java.lang.Object
com.linecorp.armeria.common.util.AbstractUnwrappable<Service<T_I,T_O>>
com.linecorp.armeria.server.DecoratingService<I,O,I,O>
com.linecorp.armeria.server.SimpleDecoratingService<HttpRequest,HttpResponse>
com.linecorp.armeria.server.SimpleDecoratingHttpService
com.linecorp.armeria.server.kotlin.CoroutineContextService
- All Implemented Interfaces:
Unwrappable
,HttpService
,Service<HttpRequest,
HttpResponse>
Decorates an
HttpService
to configure the coroutine context which is used as an initial context
of annotated services' suspending functions.
Example:
> serverBuilder
> .annotatedService(object {
> @Get("/users/{uid}")
> suspend fun foo(@Param("uid") uid: String): HttpResponse {
> ...
> }
> })
> .decorator(CoroutineContextService.newDecorator { ctx ->
> CoroutineName(ctx.config().defaultServiceNaming.serviceName(ctx) ?: "name")
> })
Note that ctx.eventLoop()
is used as coroutine dispatcher by default,
and ctx.blockingTaskExecutor()
is used if `useBlockingTaskExecutor` is set to true
or methods are annotated with @Blocking
.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Function<? super HttpService,
CoroutineContextService> newDecorator
(CoroutineContextProvider provider) Returns a newHttpService
decorator that injects into annotated services the coroutine context provided by the specifiedprovider
.serve
(ServiceRequestContext ctx, HttpRequest req) Serves an incomingRequest
.Methods inherited from class com.linecorp.armeria.server.SimpleDecoratingHttpService
exchangeType
Methods inherited from class com.linecorp.armeria.server.DecoratingService
serviceAdded, shouldCachePath
Methods inherited from class com.linecorp.armeria.common.util.AbstractUnwrappable
as, toString, unwrap, unwrapAll
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.linecorp.armeria.server.HttpService
decorate, decorate
Methods inherited from interface com.linecorp.armeria.server.Service
as, serviceAdded, shouldCachePath, unwrap
Methods inherited from interface com.linecorp.armeria.common.util.Unwrappable
equalsIgnoreWrapper, unwrapAll
-
Method Details
-
newDecorator
public static Function<? super HttpService,CoroutineContextService> newDecorator(CoroutineContextProvider provider) Returns a newHttpService
decorator that injects into annotated services the coroutine context provided by the specifiedprovider
. -
serve
Description copied from interface:Service
Serves an incomingRequest
.
-