import org.apache.coyote.Processor; //导入方法依赖的package包/类
@SuppressWarnings("deprecation") // Inbound/Outbound based upgrade
@Override
protected void longPoll(SocketWrapper socket,
Processor processor) {
if (processor.isAsync()) {
// Async
socket.setAsync(true);
} else if (processor.isComet()) {
// Comet
if (proto.endpoint.isRunning()) {
socket.setComet(true);
((AprEndpoint) proto.endpoint).getPoller().add(
socket.getSocket().longValue(),
proto.endpoint.getSoTimeout(), true, false);
} else {
// Process a STOP directly
((AprEndpoint) proto.endpoint).processSocket(
socket.getSocket().longValue(),
SocketStatus.STOP);
}
} else if (processor.isUpgrade()) {
// Upgraded
Poller p = ((AprEndpoint) proto.endpoint).getPoller();
if (p == null) {
// Connector has been stopped
release(socket, processor, true, false);
} else {
p.add(socket.getSocket().longValue(), -1, true, false);
}
} else {
// Tomcat 7 proprietary upgrade
((AprEndpoint) proto.endpoint).getPoller().add(
socket.getSocket().longValue(),
processor.getUpgradeInbound().getReadTimeout(),
true, false);
}
}