Apache Tomcat 7.0.28

org.apache.coyote.ajp
Class AjpProcessor

java.lang.Object
  extended by org.apache.coyote.AbstractProcessor<S>
      extended by org.apache.coyote.ajp.AbstractAjpProcessor<Socket>
          extended by 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.28

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