Apache Tomcat 7.0.28

org.apache.coyote.ajp
Class AjpAprProcessor

java.lang.Object
  extended by org.apache.coyote.AbstractProcessor<S>
      extended by org.apache.coyote.ajp.AbstractAjpProcessor<Long>
          extended by org.apache.coyote.ajp.AjpAprProcessor
All Implemented Interfaces:
ActionHook, Processor<Long>

public class AjpAprProcessor
extends AbstractAjpProcessor<Long>

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  ByteBuffer inputBuffer
          Direct buffer used for input.
protected  ByteBuffer outputBuffer
          Direct buffer used for output.
protected  SocketWrapper<Long> 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
AjpAprProcessor(int packetSize, AprEndpoint 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<Long> socket)
          Process pipelined HTTP requests using the specified input and output streams.
protected  boolean read(int n)
          Read at least the specified amount of bytes, and place them in the input buffer.
protected  boolean readMessage(AjpMessage message, boolean first, boolean useAvailableData)
          Read an AJP message.
protected  boolean readt(int n, boolean useAvailableData)
          Read at least the specified amount of bytes, and place them in the input buffer.
 boolean receive()
          Receive a chunk of data.
 void recycle(boolean socketClosing)
          Recycle the processor.
 
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<Long> socket
Socket associated with the current connection.


inputBuffer

protected ByteBuffer inputBuffer
Direct buffer used for input.


outputBuffer

protected ByteBuffer outputBuffer
Direct buffer used for output.

Constructor Detail

AjpAprProcessor

public AjpAprProcessor(int packetSize,
                       AprEndpoint endpoint)
Method Detail

getLog

protected Log getLog()
Specified by:
getLog in class AbstractAjpProcessor<Long>

process

public AbstractEndpoint.Handler.SocketState process(SocketWrapper<Long> socket)
                                             throws IOException
Process pipelined HTTP requests using the specified input and output streams.

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

actionInternal

protected void actionInternal(ActionCode actionCode,
                              Object param)
Send an action to the connector.

Specified by:
actionInternal in class AbstractAjpProcessor<Long>
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<Long>
Throws:
IOException

read

protected boolean read(int n)
                throws IOException
Read at least the specified amount of bytes, and place them in the input buffer.

Throws:
IOException

readt

protected boolean readt(int n,
                        boolean useAvailableData)
                 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<Long>
Throws:
IOException

readMessage

protected boolean readMessage(AjpMessage message,
                              boolean first,
                              boolean useAvailableData)
                       throws IOException
Read an AJP message.

Parameters:
first - is true if the message is the first in the request, which will cause a short duration blocking read
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

recycle

public void recycle(boolean socketClosing)
Recycle the processor.

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

Apache Tomcat 7.0.28

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