1   package org.mortbay.jetty;
2   
3   import org.mortbay.util.ajax.Continuation;
4   
5   public class Servlet3Continuation implements Continuation
6   {
7       Request _request;
8       Object _object;
9       RetryRequest _retry;
10      
11      Servlet3Continuation(Request request)
12      {
13          _request=request;
14      }
15      
16      public Object getObject()
17      {
18          return _object;
19      }
20  
21      public boolean isExpired()
22      {
23          return _request.isTimeout();
24      }
25  
26      public boolean isNew()
27      {
28          return _retry==null;
29      }
30  
31      public boolean isPending()
32      {
33          return _request.isSuspended() || !_request.isInitial();
34      }
35  
36      public boolean isResumed()
37      {
38          return _request.isResumed();
39      }
40  
41      public void reset()
42      {
43          _request.reset();
44      }
45  
46      public void resume()
47      {
48          System.err.println("Resume");
49          _request.resume();
50      }
51  
52      public void setMutex(Object mutex)
53      {
54      }
55  
56      public void setObject(Object o)
57      {
58          _object=o;
59      }
60  
61      public boolean suspend(long timeout)
62      {
63          System.err.println(_request);
64          if (!_request.isInitial()&&(_request.isResumed()||_request.isTimeout()))
65              return _request.isResumed();
66  
67          _request.suspend(timeout);
68          if (_retry==null)
69              _retry=new RetryRequest();
70          throw _retry;
71          
72      }
73  
74  }