Top Description Methods
org.mortbay.util.ajax

public Interface Continuation

Known Direct Implementers
org.mortbay.util.ajax.WaitingContinuation
Imports
javax.servlet.ServletRequest

Deprecated

use ServletRequest#suspend()

Continuation. A continuation is a mechanism by which a HTTP Request can be suspended and restarted after a timeout or an asynchronous event has occured. Blocking continuations will block the process of the request during a call to suspend(long). Non-blocking continuation can abort the current request and arrange for it to be retried when resume() is called or the timeout expires. In order to supprt non-blocking continuations, it is important that all actions taken by a filter or servlet before a call to suspend(long) are either idempotent (can be retried) or are made conditional on isPending so they are not performed on retried requests. With the appropriate HTTP Connector, this allows threadless waiting for events (see org.mortbay.jetty.nio.SelectChannelConnector).
Author
gregw

Method Summary

Modifier and TypeMethod and Description
public Object

Returns:

An arbitrary object associated with the continuation
getObject
()

Arbitrary object associated with the continuation for context.

public boolean

Returns:

True if the continuation is has been expired.
isExpired
()

Get the resumed status?

public boolean

Returns:

True if the continuation has just been created and has not yet suspended the request.
isNew
()

Is this a newly created Continuation.

public boolean

Returns:

True if the continuation is handling a call to suspend.
isPending
()

Get the pending status?

public boolean

Returns:

True if the continuation is has been resumed.
isResumed
()

Get the resumed status?

public void
reset()

Reset the continuation.

public void
resume()

Resume the request.

public void
public void
setObject(Object
An arbitrary object to associate with the continuation
o
)

Arbitrary object associated with the continuation for context.

public boolean

Returns:

True if resume called or false if timeout.
suspend
(long
A timeout of < 0 will cause an immediate return. I timeout of 0 will wait indefinitely.
timeout
)

Suspend handling.

Method Detail

getObjectback to summary
public Object getObject()

Arbitrary object associated with the continuation for context.

Returns:Object

An arbitrary object associated with the continuation

isExpiredback to summary
public boolean isExpired()

Get the resumed status?

Returns:boolean

True if the continuation is has been expired.

isNewback to summary
public boolean isNew()

Is this a newly created Continuation.

A newly created continuation has not had getEvent(long) called on it.

Returns:boolean

True if the continuation has just been created and has not yet suspended the request.

isPendingback to summary
public boolean isPending()

Get the pending status? A continuation is pending while the handling of a call to suspend has not completed. For blocking continuations, pending is true only during the call to suspend(long). For non-blocking continuations, pending is true until a second call to suspend(long) or a call to reset(), thus this method can be used to determine if a request is being retried.

Returns:boolean

True if the continuation is handling a call to suspend.

isResumedback to summary
public boolean isResumed()

Get the resumed status?

Returns:boolean

True if the continuation is has been resumed.

resetback to summary
public void reset()

Reset the continuation. Cancel any pending status of the continuation.

resumeback to summary
public void resume()

Resume the request. Resume a suspended request. The passed event will be returned in the getObject method.

setMutexback to summary
public void setMutex(Object mutex)
setObjectback to summary
public void setObject(Object o)

Arbitrary object associated with the continuation for context.

Parameters
o:Object

An arbitrary object to associate with the continuation

suspendback to summary
public boolean suspend(long timeout)

Suspend handling. This method will suspend the request for the timeout or until resume is called.

Parameters
timeout:long

A timeout of < 0 will cause an immediate return. I timeout of 0 will wait indefinitely.

Returns:boolean

True if resume called or false if timeout.