Class 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 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 wrap
        configurable - true to allow configuration of the next channel, false otherwise
        passClose - true to close the underlying channel when this channel is closed, false otherwise
        responseHeaders - The response headers
        finishListener - The finish listener
        attachable - The attachable
    • Method Detail

      • write

        public int write​(ByteBuffer src)
                  throws IOException
        Specified by:
        write in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        write in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • truncateWrites

        public void truncateWrites()
                            throws IOException
        Specified by:
        truncateWrites in interface org.xnio.conduits.SinkConduit
        Overrides:
        truncateWrites in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • write

        public long write​(ByteBuffer[] srcs,
                          int offset,
                          int length)
                   throws IOException
        Specified by:
        write in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        write in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • writeFinal

        public long writeFinal​(ByteBuffer[] srcs,
                               int offset,
                               int length)
                        throws IOException
        Specified by:
        writeFinal in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        writeFinal in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • writeFinal

        public int writeFinal​(ByteBuffer src)
                       throws IOException
        Specified by:
        writeFinal in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        writeFinal in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • transferFrom

        public long transferFrom​(FileChannel src,
                                 long position,
                                 long count)
                          throws IOException
        Specified by:
        transferFrom in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        transferFrom in class org.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:
        transferFrom in interface org.xnio.conduits.StreamSinkConduit
        Overrides:
        transferFrom in class org.xnio.conduits.AbstractStreamSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • flush

        public boolean flush()
                      throws IOException
        Specified by:
        flush in interface org.xnio.conduits.SinkConduit
        Overrides:
        flush in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • terminateWrites

        public void terminateWrites()
                             throws IOException
        Specified by:
        terminateWrites in interface org.xnio.conduits.SinkConduit
        Overrides:
        terminateWrites in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • awaitWritable

        public void awaitWritable()
                           throws IOException
        Specified by:
        awaitWritable in interface org.xnio.conduits.SinkConduit
        Overrides:
        awaitWritable in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException
      • awaitWritable

        public void awaitWritable​(long time,
                                  TimeUnit timeUnit)
                           throws IOException
        Specified by:
        awaitWritable in interface org.xnio.conduits.SinkConduit
        Overrides:
        awaitWritable in class org.xnio.conduits.AbstractSinkConduit<org.xnio.conduits.StreamSinkConduit>
        Throws:
        IOException