Package com.linecorp.armeria.common
Class RequestContextWrapper<T extends RequestContext>
- java.lang.Object
-
- com.linecorp.armeria.common.AbstractRequestContext
-
- com.linecorp.armeria.common.RequestContextWrapper<T>
-
- Type Parameters:
T
- the self type
- All Implemented Interfaces:
RequestContext
,AttributeMap
- Direct Known Subclasses:
ClientRequestContextWrapper
,ServiceRequestContextWrapper
public abstract class RequestContextWrapper<T extends RequestContext> extends AbstractRequestContext
Wraps an existingRequestContext
.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RequestContextWrapper(T delegate)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ByteBufAllocator
alloc()
Returns theByteBufAllocator
for thisRequestContext
.<V> Attribute<V>
attr(AttributeKey<V> key)
Iterator<Attribute<?>>
attrs()
Returns allAttribute
s set in this context.protected T
delegate()
Returns the delegate context.EventLoop
eventLoop()
<V> boolean
hasAttr(AttributeKey<V> key)
void
invokeOnChildCallbacks(RequestContext newCtx)
Invokes allRequestContext.onChild(BiConsumer)
callbacks.void
invokeOnEnterCallbacks()
Invokes allRequestContext.onEnter(Consumer)
callbacks.void
invokeOnExitCallbacks()
Invokes allRequestContext.onExit(Consumer)
callbacks.<A extends SocketAddress>
AlocalAddress()
Returns the local address of this request, ornull
if the connection is not established yet.RequestLog
log()
Returns theRequestLog
that contains the information about the currentRequest
.RequestLogBuilder
logBuilder()
Returns theRequestLogBuilder
that collects the information about the currentRequest
.MeterRegistry
meterRegistry()
Returns theMeterRegistry
that collects various stats.HttpMethod
method()
Returns the HTTP method of the currentRequest
.void
onChild(BiConsumer<? super RequestContext,? super RequestContext> callback)
Registerscallback
to be run when this context is replaced by a child context.void
onEnter(Consumer<? super RequestContext> callback)
Registerscallback
to be run when re-entering thisRequestContext
, usually when using theRequestContext.makeContextAware(java.util.concurrent.Executor)
family of methods.void
onExit(Consumer<? super RequestContext> callback)
Registerscallback
to be run when re-exiting thisRequestContext
, usually when using theRequestContext.makeContextAware(java.util.concurrent.Executor)
family of methods.String
path()
String
query()
<A extends SocketAddress>
AremoteAddress()
Returns the remote address of this request, ornull
if the connection is not established yet.<E extends Request>
Erequest()
Returns theRequest
associated with this context.SessionProtocol
sessionProtocol()
Returns theSessionProtocol
of the currentRequest
.SSLSession
sslSession()
TheSSLSession
for this request if the connection is made over TLS, ornull
if the connection is not established yet or the connection is not a TLS connection.-
Methods inherited from class com.linecorp.armeria.common.AbstractRequestContext
contextAwareEventLoop, equals, hashCode, isTimedOut, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, makeContextAware, onEnter, onExit, rejectPromise, resolvePromise, setTimedOut
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.linecorp.armeria.common.RequestContext
contextAwareExecutor, executor, makeContextAware, newDerivedContext, newDerivedContext, push, push, pushIfAbsent
-
-
-
-
Constructor Detail
-
RequestContextWrapper
protected RequestContextWrapper(T delegate)
Creates a new instance.
-
-
Method Detail
-
delegate
protected final T delegate()
Returns the delegate context.
-
sessionProtocol
public SessionProtocol sessionProtocol()
Description copied from interface:RequestContext
Returns theSessionProtocol
of the currentRequest
.
-
remoteAddress
@Nullable public <A extends SocketAddress> A remoteAddress()
Description copied from interface:RequestContext
Returns the remote address of this request, ornull
if the connection is not established yet.
-
localAddress
@Nullable public <A extends SocketAddress> A localAddress()
Description copied from interface:RequestContext
Returns the local address of this request, ornull
if the connection is not established yet.
-
sslSession
@Nullable public SSLSession sslSession()
Description copied from interface:RequestContext
TheSSLSession
for this request if the connection is made over TLS, ornull
if the connection is not established yet or the connection is not a TLS connection.
-
method
public HttpMethod method()
Description copied from interface:RequestContext
Returns the HTTP method of the currentRequest
.
-
path
public String path()
Description copied from interface:RequestContext
-
query
public String query()
Description copied from interface:RequestContext
-
request
public <E extends Request> E request()
Description copied from interface:RequestContext
Returns theRequest
associated with this context.
-
log
public RequestLog log()
Description copied from interface:RequestContext
Returns theRequestLog
that contains the information about the currentRequest
.
-
logBuilder
public RequestLogBuilder logBuilder()
Description copied from interface:RequestContext
Returns theRequestLogBuilder
that collects the information about the currentRequest
.
-
meterRegistry
public MeterRegistry meterRegistry()
Description copied from interface:RequestContext
Returns theMeterRegistry
that collects various stats.
-
attrs
public Iterator<Attribute<?>> attrs()
Description copied from interface:RequestContext
Returns allAttribute
s set in this context.
-
eventLoop
public EventLoop eventLoop()
Description copied from interface:RequestContext
-
onEnter
public void onEnter(Consumer<? super RequestContext> callback)
Description copied from interface:RequestContext
Registerscallback
to be run when re-entering thisRequestContext
, usually when using theRequestContext.makeContextAware(java.util.concurrent.Executor)
family of methods. Any thread-local state associated with this context should be restored by this callback.- Parameters:
callback
- aConsumer
whose argument is this context
-
onExit
public void onExit(Consumer<? super RequestContext> callback)
Description copied from interface:RequestContext
Registerscallback
to be run when re-exiting thisRequestContext
, usually when using theRequestContext.makeContextAware(java.util.concurrent.Executor)
family of methods. Any thread-local state associated with this context should be reset by this callback.- Parameters:
callback
- aConsumer
whose argument is this context
-
onChild
public void onChild(BiConsumer<? super RequestContext,? super RequestContext> callback)
Description copied from interface:RequestContext
Registerscallback
to be run when this context is replaced by a child context. You could use this method to inherit an attribute of this context to the child contexts or register a callback to the child contexts that may be created later:ctx.onChild((curCtx, newCtx) -> { assert ctx == curCtx && curCtx != newCtx; // Inherit the value of the 'MY_ATTR' attribute to the child context. newCtx.attr(MY_ATTR).set(curCtx.attr(MY_ATTR).get()); // Add a callback to the child context. newCtx.onExit(() -> { ... }); });
- Parameters:
callback
- aBiConsumer
whose first argument is this context and whose second argument is the new context that replaces this context
-
invokeOnEnterCallbacks
public void invokeOnEnterCallbacks()
Description copied from interface:RequestContext
Invokes allRequestContext.onEnter(Consumer)
callbacks. It is discouraged to use this method directly. UseRequestContext.makeContextAware(Runnable)
orRequestContext.push(boolean)
instead so that the callbacks are invoked automatically.
-
invokeOnExitCallbacks
public void invokeOnExitCallbacks()
Description copied from interface:RequestContext
Invokes allRequestContext.onExit(Consumer)
callbacks. It is discouraged to use this method directly. UseRequestContext.makeContextAware(Runnable)
orRequestContext.push(boolean)
instead so that the callbacks are invoked automatically.
-
invokeOnChildCallbacks
public void invokeOnChildCallbacks(RequestContext newCtx)
Description copied from interface:RequestContext
Invokes allRequestContext.onChild(BiConsumer)
callbacks. It is discouraged to use this method directly. UseRequestContext.makeContextAware(Runnable)
orRequestContext.push(boolean)
instead so that the callbacks are invoked automatically.
-
attr
public <V> Attribute<V> attr(AttributeKey<V> key)
-
hasAttr
public <V> boolean hasAttr(AttributeKey<V> key)
-
alloc
public ByteBufAllocator alloc()
Description copied from interface:RequestContext
Returns theByteBufAllocator
for thisRequestContext
. Any buffers created by thisByteBufAllocator
must be reference-counted. If you don't know what this means, you should probably usebyte[]
orByteBuffer
directly instead of calling this method.
-
-