Apache Tomcat 7.0.28

org.apache.coyote
Class AsyncStateMachine<S>

java.lang.Object
  extended by org.apache.coyote.AsyncStateMachine<S>

public class AsyncStateMachine<S>
extends Object

Manages the state transitions for async requests.

 The internal states that are used are:
 DISPATCHED    - Standard request. Not in Async mode.
 STARTING      - ServletRequest.startAsync() has been called but the
                 request in which that call was made has not finished
                 processing.
 STARTED       - ServletRequest.startAsync() has been called and the
                 request in which that call was made has finished
                 processing.
 MUST_COMPLETE - complete() has been called before the request in which
                 ServletRequest.startAsync() has finished. As soon as that
                 request finishes, the complete() will be processed.
 COMPLETING    - The call to complete() was made once the request was in
                 the STARTED state. May or may not be triggered by a
                 container thread - depends if start(Runnable) was used
 TIMING_OUT    - The async request has timed out and is waiting for a call
                 to complete(). If that isn't made, the error state will
                 entered.
 MUST_DISPATCH - dispatch() has been called before the request in which
                 ServletRequest.startAsync() has finished. As soon as that
                 request finishes, the dispatch() will be processed.
 DISPATCHING   - The dispatch is being processed.
 ERROR         - Something went wrong.

 |----------------->--------------|                                         
 |                               \|/                                        
 |   |----------<---------------ERROR                                    
 |   |    complete()           /|\ |postProcess()
 |   |                   error()|  |
 |   |                          |  |  |--|timeout()
 |   |           postProcess()  | \|/ | \|/            auto
 |   |         |--------------->DISPATCHED<------------------COMPLETING<----|
 |   |         |               /|\  |                          | /|\        | 
 |   |         |    |--->-------|   |                          |--|         | 
 |   |         ^    |               |startAsync()            timeout()      |
 |   |         |    |               |                                       | 
 |  \|/        |    |  complete()  \|/        postProcess()                 | 
 | MUST_COMPLETE-<- | ----<------STARTING-->----------------|               ^     
 |      /|\         |               |                       |               |         
 |       |          |               |                       |               |         
 |       |          ^               |dispatch()             |               |         
 |       |          |               |                       |               |         
 |       |          |              \|/                     \|/   complete() |         
 |       |          |         MUST_DISPATCH              STARTED---->-------|   
 |       |          |           |                         |   |                        
 |       |          |           |postProcess()            |   |                        
 ^       ^          |           |              dispatch() |   |auto                        
 |       |          |           |    |--------------------|   |                        
 |       |          | auto     \|/  \|/                      \|/                         
 |       |          |---<----DISPATCHING<-----------------TIMING_OUT                              
 |       |                                  dispatch()      |   |             
 |       |                                                  |   |            
 |       |-------<-------------------------------------<----|   |            
 |                              complete()                      |            
 |                                                              |            
 |----<------------------------<-----------------------------<--|            
                                 error()
 


Constructor Summary
AsyncStateMachine(Processor<S> processor)
           
 
Method Summary
 boolean asyncComplete()
           
 boolean asyncDispatch()
           
 void asyncDispatched()
           
 boolean asyncError()
           
 AbstractEndpoint.Handler.SocketState asyncPostProcess()
           
 void asyncRun(Runnable runnable)
           
 void asyncStart(AsyncContextCallback asyncCtxt)
           
 boolean asyncTimeout()
           
 boolean isAsync()
           
 boolean isAsyncDispatching()
           
 boolean isAsyncStarted()
           
 boolean isAsyncTimingOut()
           
 void recycle()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsyncStateMachine

public AsyncStateMachine(Processor<S> processor)
Method Detail

isAsync

public boolean isAsync()

isAsyncDispatching

public boolean isAsyncDispatching()

isAsyncStarted

public boolean isAsyncStarted()

isAsyncTimingOut

public boolean isAsyncTimingOut()

asyncStart

public void asyncStart(AsyncContextCallback asyncCtxt)

asyncPostProcess

public AbstractEndpoint.Handler.SocketState asyncPostProcess()

asyncComplete

public boolean asyncComplete()

asyncTimeout

public boolean asyncTimeout()

asyncDispatch

public boolean asyncDispatch()

asyncDispatched

public void asyncDispatched()

asyncError

public boolean asyncError()

asyncRun

public void asyncRun(Runnable runnable)

recycle

public void recycle()

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.