public class PipeliningBufferingStreamSinkConduit
extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
This can improve performance when pipelining requests.
Constructor and Description |
---|
PipeliningBufferingStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, ByteBufferPool pool) |
Modifier and Type | Method and Description |
---|---|
void | awaitWritable() |
void | awaitWritable(long time, TimeUnit timeUnit) |
void | exchangeComplete(HttpServerExchange exchange) |
boolean | flush() |
boolean | flushPipelinedData() Flushes the cached data. |
void | setupPipelineBuffer(HttpServerExchange exchange) Gets the channel wrapper that implements the buffering |
void | terminateWrites() |
long | transferFrom(FileChannel src, long position, long count) |
long | transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) |
void | truncateWrites() |
int | write(ByteBuffer src) |
long | write(ByteBuffer[] srcs, int offset, int length) |
int | writeFinal(ByteBuffer src) |
long | writeFinal(ByteBuffer[] srcs, int offset, int length) |
getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, wakeupWrites
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public PipeliningBufferingStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, ByteBufferPool pool)
public long transferFrom(FileChannel src, long position, long count) throws IOException
transferFrom
in interface org.xnio.conduits.StreamSinkConduit
transferFrom
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException
transferFrom
in interface org.xnio.conduits.StreamSinkConduit
transferFrom
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
write
in interface org.xnio.conduits.StreamSinkConduit
write
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public int write(ByteBuffer src) throws IOException
write
in interface org.xnio.conduits.StreamSinkConduit
write
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public int writeFinal(ByteBuffer src) throws IOException
writeFinal
in interface org.xnio.conduits.StreamSinkConduit
writeFinal
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
writeFinal
in interface org.xnio.conduits.StreamSinkConduit
writeFinal
in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public boolean flushPipelinedData() throws IOException
This should be called when a read thread fails to read any more request data, to make sure that any buffered data is flushed after the last pipelined request.
If this returns false the read thread should suspend reads and resume writes
true
If the flush succeeded, false otherwiseIOException
public void setupPipelineBuffer(HttpServerExchange exchange)
public void awaitWritable(long time, TimeUnit timeUnit) throws IOException
awaitWritable
in interface org.xnio.conduits.SinkConduit
awaitWritable
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void awaitWritable() throws IOException
awaitWritable
in interface org.xnio.conduits.SinkConduit
awaitWritable
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public boolean flush() throws IOException
flush
in interface org.xnio.conduits.SinkConduit
flush
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void terminateWrites() throws IOException
terminateWrites
in interface org.xnio.conduits.SinkConduit
terminateWrites
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void truncateWrites() throws IOException
truncateWrites
in interface org.xnio.conduits.SinkConduit
truncateWrites
in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
IOException
public void exchangeComplete(HttpServerExchange exchange)
Copyright © 2017 JBoss by Red Hat. All rights reserved.