org.apache.coyote.http11

## Class Http11NioProcessor

- java.lang.Object
- - org.apache.coyote.AbstractProcessor<S>
  - - org.apache.coyote.http11.AbstractHttp11Processor<NioChannel>
    - - org.apache.coyote.http11.Http11NioProcessor

- All Implemented Interfaces:
    ActionHook, Processor<NioChannel>

      public class Http11NioProcessor
      extends AbstractHttp11Processor<NioChannel>

  Processes HTTP requests.
  Author:
    Remy Maucherat, Filip Hanik

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected InternalNioInputBuffer` | `inputBuffer` Input.
    `protected InternalNioOutputBuffer` | `outputBuffer` Output.
    `protected NioEndpoint.SendfileData` | `sendfileData` Sendfile data.
    `protected SSLSupport` | `sslSupport` SSL information.

    - ### Fields inherited from class org.apache.coyote.http11.AbstractHttp11Processor

      `comet, compressableMimeTypes, compressionLevel, compressionMinSize, connectionUploadTimeout, contentDelimitation, disableUploadTimeout, expectation, hostNameC, http09, http11, httpUpgradeHandler, keepAlive, keepAliveTimeout, keptAlive, localAddr, localName, localPort, maxKeepAliveRequests, maxSavePostSize, noCompressionUserAgents, openSocket, readComplete, remoteAddr, remoteHost, remotePort, restrictedUserAgents, sendfileInProgress, server, sm, socketBuffer, upgradeInbound`

    - ### Fields inherited from class org.apache.coyote.AbstractProcessor

      `adapter, asyncStateMachine, endpoint, request, response, socketWrapper`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Http11NioProcessor(int maxHttpHeaderSize, NioEndpoint endpoint, int maxTrailerSize, Set<String> allowedTrailerHeaders, int maxExtensionSize, int maxSwallowSize)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionInternal(ActionCode actionCode, Object param)` Send an action to the connector.
    `protected boolean` | `breakKeepAliveLoop(SocketWrapper<NioChannel> socketWrapper)` Checks to see if the keep-alive loop should be broken, performing any processing (e.g. sendfile handling) that may have an impact on whether or not the keep-alive loop should be broken.
    `protected boolean` | `disableKeepAlive()` Processors (currently only HTTP BIO) may elect to disable HTTP keep-alive in some circumstances.
    `AbstractEndpoint.Handler.SocketState` | `event(SocketStatus status)` Process pipelined HTTP requests using the specified input and output streams.
    `protected AbstractInputBuffer<NioChannel>` | `getInputBuffer()` Exposes input buffer to super class to allow better code re-use.
    `protected Log` | `getLog()`
    `protected AbstractOutputBuffer<NioChannel>` | `getOutputBuffer()` Exposes output buffer to super class to allow better code re-use.
    `protected boolean` | `handleIncompleteRequestLineRead()` Defines how a connector handles an incomplete request line read.
    `protected void` | `prepareRequestInternal()` Connector implementation specific request preparation.
    `protected boolean` | `prepareSendfile(OutputFilter[] outputFilters)`
    `void` | `recycleInternal()`
    `protected void` | `resetTimeouts()` Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.
    `protected void` | `setCometTimeouts(SocketWrapper<NioChannel> socketWrapper)` Provides a mechanism for those connectors (currently only NIO) that need that need to set comet timeouts.
    `protected void` | `setRequestLineReadTimeout()` Configures the timeout to be used for reading the request line.
    `protected void` | `setSocketTimeout(int timeout)` Set the socket timeout.
    `void` | `setSslSupport(SSLSupport sslSupport)` Set the SSL information for this HTTP connection.

    - ### Methods inherited from class org.apache.coyote.http11.AbstractHttp11Processor

      `action, addCompressableMimeType, addCompressibleMimeType, asyncDispatch, endRequest, findBytes, getCompression, getConnectionUploadTimeout, getDisableUploadTimeout, getHttpUpgradeHandler, getKeepAliveTimeout, getMaxKeepAliveRequests, getMaxSavePostSize, getServer, getSocketBuffer, getUpgradeInbound, initializeFilters, isComet, isUpgrade, parseHost, prepareRequest, process, recycle, setCompressableMimeTypes, setCompressableMimeTypes, setCompressibleMimeTypes, setCompressibleMimeTypes, setCompression, setCompressionMinSize, setConnectionUploadTimeout, setDisableUploadTimeout, setKeepAliveTimeout, setMaxKeepAliveRequests, setMaxSavePostSize, setNoCompressionUserAgents, setRestrictedUserAgents, setServer, setSocketBuffer, statusDropsConnection, upgradeDispatch, upgradeDispatch`

    - ### Methods inherited from class org.apache.coyote.AbstractProcessor

      `asyncPostProcess, errorDispatch, getAdapter, getEndpoint, getErrorState, getExecutor, getMaxCookieCount, getRequest, getSocketWrapper, isAsync, resetErrorState, setAdapter, setErrorState, setMaxCookieCount, setSocketWrapper`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sslSupport

          protected SSLSupport sslSupport

      SSL information.

    - #### inputBuffer

          protected InternalNioInputBuffer inputBuffer

      Input.

    - #### outputBuffer

          protected InternalNioOutputBuffer outputBuffer

      Output.

    - #### sendfileData

          protected NioEndpoint.SendfileData sendfileData

      Sendfile data.

  - ### Constructor Detail

    - #### Http11NioProcessor

          public Http11NioProcessor(int maxHttpHeaderSize,
                            NioEndpoint endpoint,
                            int maxTrailerSize,
                            Set<String> allowedTrailerHeaders,
                            int maxExtensionSize,
                            int maxSwallowSize)

  - ### Method Detail

    - #### getLog

          protected Log getLog()

      Specified by:
        `getLog` in class `AbstractProcessor<NioChannel>`

    - #### event

          public AbstractEndpoint.Handler.SocketState event(SocketStatus status)
                                                     throws IOException

      Process pipelined HTTP requests using the specified input and output streams.
      Specified by:
        `event` in interface `Processor<NioChannel>`
      Specified by:
        `event` in class `AbstractProcessor<NioChannel>`
      Throws:
        `IOException` - error during an I/O operation

    - #### resetTimeouts

          protected void resetTimeouts()

      Description copied from class: `AbstractHttp11Processor`
      Provides a mechanism for those connector implementations (currently only NIO) that need to reset timeouts from Async timeouts to standard HTTP timeouts once async processing completes.
      Specified by:
        `resetTimeouts` in class `AbstractHttp11Processor<NioChannel>`

    - #### disableKeepAlive

          protected boolean disableKeepAlive()

      Description copied from class: `AbstractHttp11Processor`
      Processors (currently only HTTP BIO) may elect to disable HTTP keep-alive in some circumstances. This method allows the processor implementation to determine if keep-alive should be disabled or not.
      Specified by:
        `disableKeepAlive` in class `AbstractHttp11Processor<NioChannel>`

    - #### setRequestLineReadTimeout

          protected void setRequestLineReadTimeout()
                                            throws IOException

      Description copied from class: `AbstractHttp11Processor`
      Configures the timeout to be used for reading the request line.
      Specified by:
        `setRequestLineReadTimeout` in class `AbstractHttp11Processor<NioChannel>`
      Throws:
        `IOException`

    - #### handleIncompleteRequestLineRead

          protected boolean handleIncompleteRequestLineRead()

      Description copied from class: `AbstractHttp11Processor`
      Defines how a connector handles an incomplete request line read.
      Specified by:
        `handleIncompleteRequestLineRead` in class `AbstractHttp11Processor<NioChannel>`
      Returns:
        `true` if the processor should break out of the processing loop, otherwise `false`.

    - #### setSocketTimeout

          protected void setSocketTimeout(int timeout)
                                   throws IOException

      Description copied from class: `AbstractHttp11Processor`
      Set the socket timeout.
      Specified by:
        `setSocketTimeout` in class `AbstractHttp11Processor<NioChannel>`
      Throws:
        `IOException`

    - #### setCometTimeouts

          protected void setCometTimeouts(SocketWrapper<NioChannel> socketWrapper)

      Description copied from class: `AbstractHttp11Processor`
      Provides a mechanism for those connectors (currently only NIO) that need that need to set comet timeouts.
      Specified by:
        `setCometTimeouts` in class `AbstractHttp11Processor<NioChannel>`

    - #### breakKeepAliveLoop

          protected boolean breakKeepAliveLoop(SocketWrapper<NioChannel> socketWrapper)

      Description copied from class: `AbstractHttp11Processor`
      Checks to see if the keep-alive loop should be broken, performing any processing (e.g. sendfile handling) that may have an impact on whether or not the keep-alive loop should be broken.
      Specified by:
        `breakKeepAliveLoop` in class `AbstractHttp11Processor<NioChannel>`
      Returns:
        true if the keep-alive loop should be broken

    - #### recycleInternal

          public void recycleInternal()

      Specified by:
        `recycleInternal` in class `AbstractHttp11Processor<NioChannel>`

    - #### actionInternal

          public void actionInternal(ActionCode actionCode,
                            Object param)

      Send an action to the connector.
      Specified by:
        `actionInternal` in class `AbstractHttp11Processor<NioChannel>`
      Parameters:
        `actionCode` - Type of the action
        `param` - Action parameter

    - #### prepareRequestInternal

          protected void prepareRequestInternal()

      Description copied from class: `AbstractHttp11Processor`
      Connector implementation specific request preparation. Ideally, this will go away in the future.
      Specified by:
        `prepareRequestInternal` in class `AbstractHttp11Processor<NioChannel>`

    - #### prepareSendfile

          protected boolean prepareSendfile(OutputFilter[] outputFilters)

      Specified by:
        `prepareSendfile` in class `AbstractHttp11Processor<NioChannel>`

    - #### getInputBuffer

          protected AbstractInputBuffer<NioChannel> getInputBuffer()

      Description copied from class: `AbstractHttp11Processor`
      Exposes input buffer to super class to allow better code re-use.
      Specified by:
        `getInputBuffer` in class `AbstractHttp11Processor<NioChannel>`
      Returns:
        The input buffer used by the processor.

    - #### getOutputBuffer

          protected AbstractOutputBuffer<NioChannel> getOutputBuffer()

      Description copied from class: `AbstractHttp11Processor`
      Exposes output buffer to super class to allow better code re-use.
      Specified by:
        `getOutputBuffer` in class `AbstractHttp11Processor<NioChannel>`
      Returns:
        The output buffer used by the processor.

    - #### setSslSupport

          public void setSslSupport(SSLSupport sslSupport)

      Set the SSL information for this HTTP connection.

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.