private static class ServerRuntime.AsyncResponder extends java.lang.Object implements AsyncContext, ContainerResponseWriter.TimeoutHandler, javax.ws.rs.container.CompletionCallback
AsyncContext.State
Modifier and Type | Field and Description |
---|---|
private java.util.List<ServerRuntime.AbstractCallbackRunner<?>> |
callbackRunners |
private boolean |
cancelled |
private static javax.ws.rs.container.TimeoutHandler |
DEFAULT_TIMEOUT_HANDLER |
private ExternalRequestContext<?> |
foreignScopeInstance |
private static java.util.logging.Logger |
LOGGER |
private RequestContext |
requestContext |
private ExternalRequestScope |
requestScopeListener |
private ServerRuntime.Responder |
responder |
private AsyncContext.State |
state |
private java.lang.Object |
stateLock |
private javax.ws.rs.container.TimeoutHandler |
timeoutHandler |
Constructor and Description |
---|
AsyncResponder(ServerRuntime.Responder responder,
RequestContext requestContext,
ExternalRequestScope requestScopeListener,
ExternalRequestContext<?> foreignScopeInstance) |
Modifier and Type | Method and Description |
---|---|
boolean |
cancel() |
boolean |
cancel(java.util.Date retryAfter) |
boolean |
cancel(int retryAfter) |
private boolean |
cancel(Value<javax.ws.rs.core.Response> responseValue) |
void |
invokeManaged(Producer<javax.ws.rs.core.Response> producer)
Invoke the provided response producer in a Jersey-managed asynchronous thread.
|
boolean |
isCancelled() |
boolean |
isDone() |
boolean |
isRunning() |
boolean |
isSuspended() |
void |
onComplete(java.lang.Throwable throwable) |
void |
onTimeout(ContainerResponseWriter responseWriter)
Method is called, when
ContainerResponseWriter.suspend(...)
operation times out. |
java.util.Collection<java.lang.Class<?>> |
register(java.lang.Class<?> callback) |
java.util.Map<java.lang.Class<?>,java.util.Collection<java.lang.Class<?>>> |
register(java.lang.Class<?> callback,
java.lang.Class<?>... callbacks) |
java.util.Collection<java.lang.Class<?>> |
register(java.lang.Object callback) |
java.util.Map<java.lang.Class<?>,java.util.Collection<java.lang.Class<?>>> |
register(java.lang.Object callback,
java.lang.Object... callbacks) |
boolean |
resume(java.lang.Object response) |
private boolean |
resume(java.lang.Runnable handler) |
boolean |
resume(java.lang.Throwable error) |
boolean |
setTimeout(long time,
java.util.concurrent.TimeUnit unit) |
void |
setTimeoutHandler(javax.ws.rs.container.TimeoutHandler handler) |
boolean |
suspend()
Suspend the current asynchronous processing context.
|
private static final java.util.logging.Logger LOGGER
private static final javax.ws.rs.container.TimeoutHandler DEFAULT_TIMEOUT_HANDLER
private final java.lang.Object stateLock
private AsyncContext.State state
private boolean cancelled
private final ServerRuntime.Responder responder
private final RequestContext requestContext
private final ExternalRequestContext<?> foreignScopeInstance
private final ExternalRequestScope requestScopeListener
private volatile javax.ws.rs.container.TimeoutHandler timeoutHandler
private final java.util.List<ServerRuntime.AbstractCallbackRunner<?>> callbackRunners
public AsyncResponder(ServerRuntime.Responder responder, RequestContext requestContext, ExternalRequestScope requestScopeListener, ExternalRequestContext<?> foreignScopeInstance)
public void onTimeout(ContainerResponseWriter responseWriter)
ContainerResponseWriter.TimeoutHandler
ContainerResponseWriter.suspend(...)
operation times out.
The custom time-out handler implementation is responsible for making
sure a (time-out) response is written to the context and that the
container context is properly closed.onTimeout
in interface ContainerResponseWriter.TimeoutHandler
responseWriter
- suspended container response writer that timed out.public void onComplete(java.lang.Throwable throwable)
onComplete
in interface javax.ws.rs.container.CompletionCallback
public void invokeManaged(Producer<javax.ws.rs.core.Response> producer)
AsyncContext
invokeManaged
in interface AsyncContext
producer
- response producer.public boolean suspend()
AsyncContext
true
if the context has been successfully suspended,
false
otherwise.suspend
in interface AsyncContext
true
if the request processing has been suspended successfully suspended,
false
otherwise.public boolean resume(java.lang.Object response)
resume
in interface javax.ws.rs.container.AsyncResponse
public boolean resume(java.lang.Throwable error)
resume
in interface javax.ws.rs.container.AsyncResponse
private boolean resume(java.lang.Runnable handler)
public boolean cancel()
cancel
in interface javax.ws.rs.container.AsyncResponse
public boolean cancel(int retryAfter)
cancel
in interface javax.ws.rs.container.AsyncResponse
public boolean cancel(java.util.Date retryAfter)
cancel
in interface javax.ws.rs.container.AsyncResponse
private boolean cancel(Value<javax.ws.rs.core.Response> responseValue)
public boolean isRunning()
public boolean isSuspended()
isSuspended
in interface javax.ws.rs.container.AsyncResponse
public boolean isCancelled()
isCancelled
in interface javax.ws.rs.container.AsyncResponse
public boolean isDone()
isDone
in interface javax.ws.rs.container.AsyncResponse
public boolean setTimeout(long time, java.util.concurrent.TimeUnit unit)
setTimeout
in interface javax.ws.rs.container.AsyncResponse
public void setTimeoutHandler(javax.ws.rs.container.TimeoutHandler handler)
setTimeoutHandler
in interface javax.ws.rs.container.AsyncResponse
public java.util.Collection<java.lang.Class<?>> register(java.lang.Class<?> callback)
register
in interface javax.ws.rs.container.AsyncResponse
public java.util.Map<java.lang.Class<?>,java.util.Collection<java.lang.Class<?>>> register(java.lang.Class<?> callback, java.lang.Class<?>... callbacks)
register
in interface javax.ws.rs.container.AsyncResponse
public java.util.Collection<java.lang.Class<?>> register(java.lang.Object callback)
register
in interface javax.ws.rs.container.AsyncResponse
public java.util.Map<java.lang.Class<?>,java.util.Collection<java.lang.Class<?>>> register(java.lang.Object callback, java.lang.Object... callbacks)
register
in interface javax.ws.rs.container.AsyncResponse