io.undertow.protocols.ajp

## Class AjpClientRequestClientStreamSinkChannel

- java.lang.Object
- - io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel<AjpClientChannel,AbstractAjpClientStreamSourceChannel,AbstractAjpClientStreamSinkChannel>
  - - io.undertow.protocols.ajp.AbstractAjpClientStreamSinkChannel
    - - io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel

All Implemented Interfaces:
  Closeable, AutoCloseable, Channel, GatheringByteChannel, InterruptibleChannel, WritableByteChannel, org.xnio.channels.CloseableChannel, org.xnio.channels.Configurable, org.xnio.channels.StreamSinkChannel, org.xnio.channels.SuspendableWriteChannel

    public class AjpClientRequestClientStreamSinkChannel
    extends AbstractAjpClientStreamSinkChannel

AJP stream sink channel that corresponds to a request send from the load balancer to the backend

Author:
  Stuart Douglas

### Field Summary

Fields
`static int` `DEFAULT_MAX_DATA_SIZE`

### Fields inherited from interface org.xnio.channels.Configurable

`EMPTY`

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `channelForciblyClosed()` Called when a channel has been forcibly closed, and data (frames) have already been written.
`void` `clearHeader()`
`protected SendFrameHeader` `createFrameHeader()`
`protected void` `handleFlushComplete(boolean finalFrame)`
`void` `startDiscard()`

### Methods inherited from class io.undertow.protocols.ajp.AbstractAjpClientStreamSinkChannel

`isLastFrame`

### Methods inherited from class io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel

`awaitWritable, awaitWritable, close, flush, getAwaitWritableTimeout, getBuffer, getChannel, getCloseSetter, getIoThread, getOption, getWorker, getWriteSetter, getWriteThread, isBroken, isBufferFull, isFinalFrameQueued, isFirstDataWritten, isFlushRequiredOnEmptyBuffer, isOpen, isReadyForFlush, isWriteResumed, isWritesShutdown, markBroken, preWriteTransform, resumeWrites, resumeWritesInternal, safeToSend, send, sendInternal, setOption, shutdownWrites, supportsOption, suspendWrites, transferFrom, transferFrom, wakeupWrites, write, write, write, writeFinal, writeFinal, writeFinal`

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

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

### Field Detail

#### DEFAULT_MAX_DATA_SIZE

    public static final int DEFAULT_MAX_DATA_SIZE

See Also:
  Constant Field Values

### Method Detail

#### startDiscard

    public void startDiscard()

#### createFrameHeader

    protected final SendFrameHeader createFrameHeader()

Overrides:
  `createFrameHeader` in class `AbstractFramedStreamSinkChannel<AjpClientChannel,AbstractAjpClientStreamSourceChannel,AbstractAjpClientStreamSinkChannel>`

#### handleFlushComplete

    protected void handleFlushComplete(boolean finalFrame)

Overrides:
  `handleFlushComplete` in class `AbstractFramedStreamSinkChannel<AjpClientChannel,AbstractAjpClientStreamSourceChannel,AbstractAjpClientStreamSinkChannel>`

#### channelForciblyClosed

    protected void channelForciblyClosed()
                                  throws IOException

Description copied from class: `AbstractFramedStreamSinkChannel`
Called when a channel has been forcibly closed, and data (frames) have already been written. The action this should take is protocol dependent, e.g. for SPDY a RST_STREAM should be sent, for websockets the channel should be closed. By default this will just close the underlying channel

Overrides:
  `channelForciblyClosed` in class `AbstractFramedStreamSinkChannel<AjpClientChannel,AbstractAjpClientStreamSourceChannel,AbstractAjpClientStreamSinkChannel>`
Throws:
  `IOException`

#### clearHeader

    public void clearHeader()