Package org.apache.coyote
Interface Processor
- All Known Implementing Classes:
- AbstractProcessor,- AbstractProcessorLight,- AjpProcessor,- Http11Processor,- UpgradeProcessorBase,- UpgradeProcessorExternal,- UpgradeProcessorInternal
public interface Processor
Common interface for processors of all protocols.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanCheck to see if the async generation (each cycle of async increments the generation of the AsyncStateMachine) is the same as the generation when the most recent async timeout was triggered.Allows retrieving additional input during the upgrade process.Generate an upgrade token.booleanisAsync()booleanvoidpause()Informs the processor that the underlying I/O layer has stopped accepting new connections.process(SocketWrapperBase<?> socketWrapper, SocketEvent status) Process a connection.voidrecycle()Recycle the processor, ready for the next request which may be on the same connection or a different connection.voidsetSslSupport(SSLSupport sslSupport) Set the SSL information for this HTTP connection.voidtimeoutAsync(long now) Check this processor to see if the timeout has expired and process a timeout if that is that case.
- 
Method Details- 
processAbstractEndpoint.Handler.SocketState process(SocketWrapperBase<?> socketWrapper, SocketEvent status) throws IOException 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.- Parameters:
- socketWrapper- The connection to process
- status- 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:
- IOException- If an I/O error occurs during the processing of the request
 
- 
getUpgradeTokenUpgradeToken getUpgradeToken()Generate an upgrade token.- Returns:
- An upgrade token encapsulating the information required to process the upgrade request
- Throws:
- IllegalStateException- if this is called on a Processor that does not support upgrading
 
- 
isUpgradeboolean isUpgrade()- Returns:
- trueif the Processor is currently processing an upgrade request, otherwise- false
 
- 
isAsyncboolean isAsync()
- 
timeoutAsyncvoid timeoutAsync(long now) Check this processor to see if the timeout has expired and process a timeout if that is that case.Note: The name of this method originated with the Servlet 3.0 asynchronous processing but evolved over time to represent a timeout that is triggered independently of the socket read/write timeouts. - Parameters:
- now- The time (as returned by- System.currentTimeMillis()to use as the current time to determine whether the timeout has expired. If negative, the timeout will always be treated as ifq it has expired.
 
- 
getRequestRequest getRequest()- Returns:
- The request associated with this processor.
 
- 
recyclevoid recycle()Recycle the processor, ready for the next request which may be on the same connection or a different connection.
- 
setSslSupportSet the SSL information for this HTTP connection.- Parameters:
- sslSupport- The SSL support object to use for this connection
 
- 
getLeftoverInputByteBuffer getLeftoverInput()Allows retrieving additional input during the upgrade process.- Returns:
- leftover bytes
- Throws:
- IllegalStateException- if this is called on a Processor that does not support upgrading
 
- 
pausevoid pause()Informs the processor that the underlying I/O layer has stopped accepting new connections. This is primarily intended to enable processors that use multiplexed connections to prevent further 'streams' being added to an existing multiplexed connection.
- 
checkAsyncTimeoutGenerationboolean checkAsyncTimeoutGeneration()Check to see if the async generation (each cycle of async increments the generation of the AsyncStateMachine) is the same as the generation when the most recent async timeout was triggered. This is intended to be used to avoid unnecessary processing.- Returns:
- trueIf the async generation has not changed since the async timeout was triggered
 
 
-