Apache Tomcat 7.0.42

## org.apache.coyote.ajp
Class AjpProcessor

    java.lang.Object
      org.apache.coyote.AbstractProcessor<S>
          org.apache.coyote.ajp.AbstractAjpProcessor<Socket>
              org.apache.coyote.ajp.AjpProcessor

All Implemented Interfaces:
  ActionHook, Processor<Socket>

    public class AjpProcessor

extends AbstractAjpProcessor<Socket>

Processes AJP requests.

Author:
  Remy Maucherat, Henri Gomez, Dan Milstein, Keith Wannamaker, Kevin Seguin, Costin Manolache, Bill Barker

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.coyote.ajp.AbstractAjpProcessor
`AbstractAjpProcessor.SocketInputBuffer, AbstractAjpProcessor.SocketOutputBuffer`

Field Summary
`protected InputStream` `input` Input stream.
`protected OutputStream` `output` Output stream.
`protected SocketWrapper<Socket>` `socket` Socket associated with the current connection.

Fields inherited from class org.apache.coyote.ajp.AbstractAjpProcessor
`bodyBytes, bodyMessage, bytesWritten, certificates, clientCertProvider, empty, endAndCloseMessageArray, endMessageArray, endOfStream, error, finished, first, flushMessageArray, getBodyMessageArray, hostNameC, keepAliveTimeout, packetSize, pongMessageArray, replay, requestHeaderMessage, requiredSecret, responseMessage, sm, tmpMB, tomcatAuthentication`

Fields inherited from class org.apache.coyote.AbstractProcessor
`adapter, asyncStateMachine, endpoint, request, response`

Constructor Summary
`AjpProcessor(int packetSize, JIoEndpoint endpoint)`

Method Summary
`protected void` `actionInternal(ActionCode actionCode, Object param)` Send an action to the connector.
`protected Log` `getLog()`
`protected void` `output(byte[] src, int offset, int length)`
`AbstractEndpoint.Handler.SocketState` `process(SocketWrapper<Socket> socket)` Process pipelined HTTP requests using the specified input and output streams.
`protected boolean` `read(byte[] buf, int pos, int n)` Read at least the specified amount of bytes, and place them in the input buffer.
`protected boolean` `readMessage(AjpMessage message)` Read an AJP message.
`boolean` `receive()` Receive a chunk of data.
`void` `recycle(boolean socketClosing)` Recycle the processor, ready for the next request which may be on the same connection or a different connection.

Methods inherited from class org.apache.coyote.ajp.AbstractAjpProcessor
`action, asyncDispatch, event, finish, flush, getClientCertProvider, getKeepAliveTimeout, getTomcatAuthentication, getUpgradeInbound, isComet, isUpgrade, parseHost, prepareRequest, prepareResponse, refillReadBuffer, setClientCertProvider, setKeepAliveTimeout, setRequiredSecret, setSslSupport, setTomcatAuthentication, upgradeDispatch`

Methods inherited from class org.apache.coyote.AbstractProcessor
`asyncPostProcess, getAdapter, getEndpoint, getExecutor, getRequest, isAsync, setAdapter`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### socket

    protected SocketWrapper<Socket> socket

  Socket associated with the current connection.

### input

    protected InputStream input

  Input stream.

### output

    protected OutputStream output

  Output stream.

Constructor Detail

### AjpProcessor

    public AjpProcessor(int packetSize,
                        JIoEndpoint endpoint)

Method Detail

### getLog

    protected Log getLog()

  Specified by:
    `getLog` in class `AbstractAjpProcessor<Socket>`

### process

    public AbstractEndpoint.Handler.SocketState process(SocketWrapper<Socket> socket)
                                                 throws IOException

  Process pipelined HTTP requests using the specified input and output streams.

  Specified by:
    `process` in interface `Processor<Socket>`
  Specified by:
    `process` in class `AbstractProcessor<Socket>`
  Throws:
    `IOException` - error during an I/O operation

### recycle

    public void recycle(boolean socketClosing)

  Description copied from class: `AbstractAjpProcessor`
  Recycle the processor, ready for the next request which may be on the same connection or a different connection.

  Specified by:
    `recycle` in interface `Processor<Socket>`
  Overrides:
    `recycle` in class `AbstractAjpProcessor<Socket>`
  Parameters:
    `socketClosing` - Indicates if the socket is about to be closed allowing the processor to perform any additional clean-up that may be required

### actionInternal

    protected void actionInternal(ActionCode actionCode,
                                  Object param)

  Send an action to the connector.

  Specified by:
    `actionInternal` in class `AbstractAjpProcessor<Socket>`
  Parameters:
    `actionCode` - Type of the action
    `param` - Action parameter

### output

    protected void output(byte[] src,
                          int offset,
                          int length)
                   throws IOException

  Specified by:
    `output` in class `AbstractAjpProcessor<Socket>`
  Throws:
    `IOException`

### read

    protected boolean read(byte[] buf,
                           int pos,
                           int n)
                    throws IOException

  Read at least the specified amount of bytes, and place them in the input buffer.

  Throws:
    `IOException`

### receive

    public boolean receive()
                    throws IOException

  Receive a chunk of data. Called to implement the 'special' packet in ajp13 and to receive the data after we send a GET_BODY packet

  Specified by:
    `receive` in class `AbstractAjpProcessor<Socket>`
  Throws:
    `IOException`

### readMessage

    protected boolean readMessage(AjpMessage message)
                           throws IOException

  Read an AJP message.

  Returns:
    true if the message has been read, false if the short read didn't return anything
  Throws:
    `IOException` - any other failure, including incomplete reads

Apache Tomcat 7.0.42

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