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 ExternalRequestScope |
requestScopeListener |
private ServerRuntime.Responder |
responder |
private RequestScope.Instance |
scopeInstance |
private AsyncContext.State |
state |
private java.lang.Object |
stateLock |
private javax.ws.rs.container.TimeoutHandler |
timeoutHandler |
| Constructor and Description |
|---|
AsyncResponder(ServerRuntime.Responder responder,
RequestScope.Instance scopeInstance,
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 RequestScope.Instance scopeInstance
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, RequestScope.Instance scopeInstance, ExternalRequestScope requestScopeListener, ExternalRequestContext<?> foreignScopeInstance)
public void onTimeout(ContainerResponseWriter responseWriter)
ContainerResponseWriter.TimeoutHandlerContainerResponseWriter.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.TimeoutHandlerresponseWriter - suspended container response writer that timed out.public void onComplete(java.lang.Throwable throwable)
onComplete in interface javax.ws.rs.container.CompletionCallbackpublic void invokeManaged(Producer<javax.ws.rs.core.Response> producer)
AsyncContextinvokeManaged in interface AsyncContextproducer - response producer.public boolean suspend()
AsyncContexttrue if the context has been successfully suspended,
false otherwise.suspend in interface AsyncContexttrue 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.AsyncResponsepublic boolean resume(java.lang.Throwable error)
resume in interface javax.ws.rs.container.AsyncResponseprivate boolean resume(java.lang.Runnable handler)
public boolean cancel()
cancel in interface javax.ws.rs.container.AsyncResponsepublic boolean cancel(int retryAfter)
cancel in interface javax.ws.rs.container.AsyncResponsepublic boolean cancel(java.util.Date retryAfter)
cancel in interface javax.ws.rs.container.AsyncResponseprivate boolean cancel(Value<javax.ws.rs.core.Response> responseValue)
public boolean isRunning()
public boolean isSuspended()
isSuspended in interface javax.ws.rs.container.AsyncResponsepublic boolean isCancelled()
isCancelled in interface javax.ws.rs.container.AsyncResponsepublic boolean isDone()
isDone in interface javax.ws.rs.container.AsyncResponsepublic boolean setTimeout(long time,
java.util.concurrent.TimeUnit unit)
setTimeout in interface javax.ws.rs.container.AsyncResponsepublic void setTimeoutHandler(javax.ws.rs.container.TimeoutHandler handler)
setTimeoutHandler in interface javax.ws.rs.container.AsyncResponsepublic java.util.Collection<java.lang.Class<?>> register(java.lang.Class<?> callback)
register in interface javax.ws.rs.container.AsyncResponsepublic 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.AsyncResponsepublic java.util.Collection<java.lang.Class<?>> register(java.lang.Object callback)
register in interface javax.ws.rs.container.AsyncResponsepublic 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