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 }