org.apache.coyote

## Class AbstractProcessor<S>

- java.lang.Object
- - org.apache.coyote.AbstractProcessor<S>

All Implemented Interfaces:
  ActionHook, Processor<S>

Direct Known Subclasses:
  AbstractAjpProcessor, AbstractHttp11Processor

    public abstract class AbstractProcessor<S>
    extends Object
    implements ActionHook, Processor<S>

Provides functionality and attributes common to all supported protocols (currently HTTP and AJP).

### Field Summary

Fields
`protected Adapter` `adapter`
`protected AsyncStateMachine<S>` `asyncStateMachine`
`protected AbstractEndpoint` `endpoint`
`protected Request` `request`
`protected Response` `response`
`protected SocketWrapper<S>` `socketWrapper`

### Constructor Summary

Constructors
`protected` `AbstractProcessor()` Intended for use by the Upgrade sub-classes that have no need to initialise the request, response, etc.
`` `AbstractProcessor(AbstractEndpoint endpoint)`

### Method Summary

Methods
`abstract AbstractEndpoint.Handler.SocketState` `asyncDispatch(SocketStatus status)` Process in-progress Servlet 3.0 Async requests.
`AbstractEndpoint.Handler.SocketState` `asyncPostProcess()`
`abstract AbstractEndpoint.Handler.SocketState` `event(SocketStatus status)` Process in-progress Comet requests.
`Adapter` `getAdapter()` Get the associated adapter.
`protected AbstractEndpoint` `getEndpoint()` The endpoint receiving connections that are handled by this processor.
`Executor` `getExecutor()` Obtain the Executor used by the underlying endpoint.
`Request` `getRequest()` The request associated with this processor.
`protected SocketWrapper<S>` `getSocketWrapper()` Get the socket wrapper being used.
`abstract UpgradeInbound` `getUpgradeInbound()` Deprecated. Will be removed in Tomcat 8.0.x.
`boolean` `isAsync()`
`abstract boolean` `isComet()`
`abstract boolean` `isUpgrade()`
`abstract AbstractEndpoint.Handler.SocketState` `process(SocketWrapper<S> socket)` Process HTTP requests.
`void` `setAdapter(Adapter adapter)` Set the associated adapter.
`protected void` `setSocketWrapper(SocketWrapper<S> socketWrapper)` Set the socket wrapper being used.
`abstract AbstractEndpoint.Handler.SocketState` `upgradeDispatch()` Processes data received on a connection that has been through an HTTP upgrade.

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

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

### Methods inherited from interface org.apache.coyote.ActionHook

`action`

### Methods inherited from interface org.apache.coyote.Processor

`getHttpUpgradeHandler, recycle, setSslSupport, upgradeDispatch`

### Field Detail

#### adapter

    protected Adapter adapter

#### asyncStateMachine

    protected AsyncStateMachine<S> asyncStateMachine

#### endpoint

    protected AbstractEndpoint endpoint

#### request

    protected Request request

#### response

    protected Response response

#### socketWrapper

    protected SocketWrapper<S> socketWrapper

### Constructor Detail

#### AbstractProcessor

    protected AbstractProcessor()

Intended for use by the Upgrade sub-classes that have no need to initialise the request, response, etc.

#### AbstractProcessor

    public AbstractProcessor(AbstractEndpoint endpoint)

### Method Detail

#### getEndpoint

    protected AbstractEndpoint getEndpoint()

The endpoint receiving connections that are handled by this processor.

#### getRequest

    public Request getRequest()

The request associated with this processor.

Specified by:
  `getRequest` in interface `Processor<S>`

#### setAdapter

    public void setAdapter(Adapter adapter)

Set the associated adapter.

Parameters:
  `adapter` - the new adapter

#### getAdapter

    public Adapter getAdapter()

Get the associated adapter.

Returns:
  the associated adapter

#### setSocketWrapper

    protected final void setSocketWrapper(SocketWrapper<S> socketWrapper)

Set the socket wrapper being used.

#### getSocketWrapper

    protected final SocketWrapper<S> getSocketWrapper()

Get the socket wrapper being used.

#### getExecutor

    public Executor getExecutor()

Obtain the Executor used by the underlying endpoint.

Specified by:
  `getExecutor` in interface `Processor<S>`

#### isAsync

    public boolean isAsync()

Specified by:
  `isAsync` in interface `Processor<S>`

#### asyncPostProcess

    public AbstractEndpoint.Handler.SocketState asyncPostProcess()

Specified by:
  `asyncPostProcess` in interface `Processor<S>`

#### isComet

    public abstract boolean isComet()

Specified by:
  `isComet` in interface `Processor<S>`

#### isUpgrade

    public abstract boolean isUpgrade()

Specified by:
  `isUpgrade` in interface `Processor<S>`

#### process

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

Process HTTP requests. All requests are treated as HTTP requests to start with although they may change type during processing.

Specified by:
  `process` in interface `Processor<S>`
Throws:
  `IOException`

#### event

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

Process in-progress Comet requests. These will start as HTTP requests.

Specified by:
  `event` in interface `Processor<S>`
Throws:
  `IOException`

#### asyncDispatch

    public abstract AbstractEndpoint.Handler.SocketState asyncDispatch(SocketStatus status)

Process in-progress Servlet 3.0 Async requests. These will start as HTTP requests.

Specified by:
  `asyncDispatch` in interface `Processor<S>`

#### upgradeDispatch

    public abstract AbstractEndpoint.Handler.SocketState upgradeDispatch()
                                                                  throws IOException

Processes data received on a connection that has been through an HTTP upgrade.

Specified by:
  `upgradeDispatch` in interface `Processor<S>`
Throws:
  `IOException`

#### getUpgradeInbound

    @Deprecated
    public abstract UpgradeInbound getUpgradeInbound()

Deprecated. Will be removed in Tomcat 8.0.x.

Specified by:
  `getUpgradeInbound` in interface `Processor<S>`