Package io.undertow.conduits
Class ChunkedStreamSinkConduit
- java.lang.Object
-
- org.xnio.conduits.AbstractConduit<D>
-
- org.xnio.conduits.AbstractSinkConduit<D>
-
- org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
-
- io.undertow.conduits.ChunkedStreamSinkConduit
-
- All Implemented Interfaces:
org.xnio.conduits.Conduit,org.xnio.conduits.SinkConduit,org.xnio.conduits.StreamSinkConduit
public class ChunkedStreamSinkConduit extends org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>Channel that implements HTTP chunked transfer coding.- Author:
- Stuart Douglas
-
-
Field Summary
Fields Modifier and Type Field Description static AttachmentKey<HeaderMap>TRAILERSDeprecated.
-
Constructor Summary
Constructors Constructor Description ChunkedStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, ByteBufferPool bufferPool, boolean configurable, boolean passClose, HeaderMap responseHeaders, ConduitListener<? super ChunkedStreamSinkConduit> finishListener, Attachable attachable)Construct a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidawaitWritable()voidawaitWritable(long time, TimeUnit timeUnit)booleanflush()voidterminateWrites()longtransferFrom(FileChannel src, long position, long count)longtransferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer)voidtruncateWrites()intwrite(ByteBuffer src)longwrite(ByteBuffer[] srcs, int offset, int length)intwriteFinal(ByteBuffer src)longwriteFinal(ByteBuffer[] srcs, int offset, int length)-
Methods inherited from class org.xnio.conduits.AbstractSinkConduit
getWriteThread, isWriteResumed, isWriteShutdown, resumeWrites, setWriteReadyHandler, suspendWrites, wakeupWrites
-
-
-
-
Field Detail
-
TRAILERS
@Deprecated public static final AttachmentKey<HeaderMap> TRAILERS
Deprecated.Trailers that are to be attached to the end of the HTTP response. Note that it is the callers responsibility to make sure the client understands trailers (i.e. they have provided a TE header), and to set the 'Trailers:' header appropriately.This attachment must be set before the
terminateWrites()method is called.
-
-
Constructor Detail
-
ChunkedStreamSinkConduit
public ChunkedStreamSinkConduit(org.xnio.conduits.StreamSinkConduit next, ByteBufferPool bufferPool, boolean configurable, boolean passClose, HeaderMap responseHeaders, ConduitListener<? super ChunkedStreamSinkConduit> finishListener, Attachable attachable)Construct a new instance.- Parameters:
next- the channel to wrapconfigurable-trueto allow configuration of the next channel,falseotherwisepassClose-trueto close the underlying channel when this channel is closed,falseotherwiseresponseHeaders- The response headersfinishListener- The finish listenerattachable- The attachable
-
-
Method Detail
-
write
public int write(ByteBuffer src) throws IOException
- Specified by:
writein interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
writein classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
truncateWrites
public void truncateWrites() throws IOException- Specified by:
truncateWritesin interfaceorg.xnio.conduits.SinkConduit- Overrides:
truncateWritesin classorg.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
write
public long write(ByteBuffer[] srcs, int offset, int length) throws IOException
- Specified by:
writein interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
writein classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
writeFinal
public long writeFinal(ByteBuffer[] srcs, int offset, int length) throws IOException
- Specified by:
writeFinalin interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
writeFinalin classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
writeFinal
public int writeFinal(ByteBuffer src) throws IOException
- Specified by:
writeFinalin interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
writeFinalin classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
transferFrom
public long transferFrom(FileChannel src, long position, long count) throws IOException
- Specified by:
transferFromin interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
transferFromin classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
transferFrom
public long transferFrom(org.xnio.channels.StreamSourceChannel source, long count, ByteBuffer throughBuffer) throws IOException- Specified by:
transferFromin interfaceorg.xnio.conduits.StreamSinkConduit- Overrides:
transferFromin classorg.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
flush
public boolean flush() throws IOException- Specified by:
flushin interfaceorg.xnio.conduits.SinkConduit- Overrides:
flushin classorg.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
terminateWrites
public void terminateWrites() throws IOException- Specified by:
terminateWritesin interfaceorg.xnio.conduits.SinkConduit- Overrides:
terminateWritesin classorg.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
awaitWritable
public void awaitWritable() throws IOException- Specified by:
awaitWritablein interfaceorg.xnio.conduits.SinkConduit- Overrides:
awaitWritablein classorg.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
awaitWritable
public void awaitWritable(long time, TimeUnit timeUnit) throws IOException- Specified by:
awaitWritablein interfaceorg.xnio.conduits.SinkConduit- Overrides:
awaitWritablein classorg.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>- Throws:
IOException
-
-