Package org.apache.coyote
Class AbstractProcessorLight
- java.lang.Object
-
- org.apache.coyote.AbstractProcessorLight
-
- All Implemented Interfaces:
Processor
- Direct Known Subclasses:
AbstractProcessor
,UpgradeProcessorBase
public abstract class AbstractProcessorLight extends java.lang.Object implements Processor
This is a light-weight abstract processor implementation that is intended as a basis for all Processor implementations from the light-weight upgrade processors to the HTTP/AJP processors.
-
-
Constructor Summary
Constructors Constructor Description AbstractProcessorLight()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addDispatch(DispatchType dispatchType)
protected abstract AbstractEndpoint.Handler.SocketState
asyncPostProcess()
protected void
clearDispatches()
protected abstract AbstractEndpoint.Handler.SocketState
dispatch(SocketEvent status)
Process an in-progress request that is not longer in standard HTTP mode.java.util.Iterator<DispatchType>
getIteratorAndClearDispatches()
protected abstract Log
getLog()
protected void
logAccess(SocketWrapperBase<?> socketWrapper)
Add an entry to the access log for a failed connection attempt.AbstractEndpoint.Handler.SocketState
process(SocketWrapperBase<?> socketWrapper, SocketEvent status)
Process a connection.protected abstract AbstractEndpoint.Handler.SocketState
service(SocketWrapperBase<?> socketWrapper)
Service a 'standard' HTTP request.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.coyote.Processor
checkAsyncTimeoutGeneration, getLeftoverInput, getRequest, getUpgradeToken, isAsync, isUpgrade, pause, recycle, setSslSupport, timeoutAsync
-
-
-
-
Method Detail
-
process
public AbstractEndpoint.Handler.SocketState process(SocketWrapperBase<?> socketWrapper, SocketEvent status) throws java.io.IOException
Description copied from interface:Processor
Process a connection. This is called whenever an event occurs (e.g. more data arrives) that allows processing to continue for a connection that is not currently being processed.- Specified by:
process
in interfaceProcessor
- Parameters:
socketWrapper
- The connection to processstatus
- The status of the connection that triggered this additional processing- Returns:
- The state the caller should put the socket in when this method returns
- Throws:
java.io.IOException
- If an I/O error occurs during the processing of the request
-
addDispatch
public void addDispatch(DispatchType dispatchType)
-
getIteratorAndClearDispatches
public java.util.Iterator<DispatchType> getIteratorAndClearDispatches()
-
clearDispatches
protected void clearDispatches()
-
logAccess
protected void logAccess(SocketWrapperBase<?> socketWrapper) throws java.io.IOException
Add an entry to the access log for a failed connection attempt.- Parameters:
socketWrapper
- The connection to process- Throws:
java.io.IOException
- If an I/O error occurs during the processing of the request
-
service
protected abstract AbstractEndpoint.Handler.SocketState service(SocketWrapperBase<?> socketWrapper) throws java.io.IOException
Service a 'standard' HTTP request. This method is called for both new requests and for requests that have partially read the HTTP request line or HTTP headers. Once the headers have been fully read this method is not called again until there is a new HTTP request to process. Note that the request type may change during processing which may result in one or more calls todispatch(SocketEvent)
. Requests may be pipe-lined.- Parameters:
socketWrapper
- The connection to process- Returns:
- The state the caller should put the socket in when this method returns
- Throws:
java.io.IOException
- If an I/O error occurs during the processing of the request
-
dispatch
protected abstract AbstractEndpoint.Handler.SocketState dispatch(SocketEvent status) throws java.io.IOException
Process an in-progress request that is not longer in standard HTTP mode. Uses currently include Servlet 3.0 Async and HTTP upgrade connections. Further uses may be added in the future. These will typically start as HTTP requests.- Parameters:
status
- The event to process- Returns:
- The state the caller should put the socket in when this method returns
- Throws:
java.io.IOException
- If an I/O error occurs during the processing of the request
-
asyncPostProcess
protected abstract AbstractEndpoint.Handler.SocketState asyncPostProcess()
-
getLog
protected abstract Log getLog()
-
-