package example;
import javax.servlet.*;
public class CometState {
private ServletRequest _request;
private int _count;
public CometState(ServletRequest request)
{
_request = request;
}
public boolean isClosed()
{
return _request == null;
}
public boolean wake()
{
if (_request == null || _request.getAttribute("comet.complete") != null)
return false;
_request.setAttribute("comet.count", ++_count);
AsyncContext async = _request.getAsyncContext();
if (async == null)
return false;
else if (async.getRequest() != null) {
async.dispatch();
return true;
}
_request = null;
async.complete();
return false;
}
}