Class AbstractContentEncoder

    • Constructor Detail

      • AbstractContentEncoder

        public AbstractContentEncoder​(java.nio.channels.WritableByteChannel channel,
                                      SessionOutputBuffer buffer,
                                      BasicHttpTransportMetrics metrics)
        Creates an instance of this class.
        Parameters:
        channel - the destination channel.
        buffer - the session output buffer that can be used to store session data for intermediate processing.
        metrics - Transport metrics of the underlying HTTP transport.
    • Method Detail

      • channel

        protected java.nio.channels.WritableByteChannel channel()
      • isCompleted

        public boolean isCompleted()
        Description copied from interface: ContentEncoder
        Returns true if the entity has been transferred in its entirety.
        Specified by:
        isCompleted in interface ContentEncoder
        Returns:
        true if all the content has been produced, false otherwise.
      • complete

        public void complete​(java.util.List<? extends Header> trailers)
                      throws java.io.IOException
        Description copied from interface: ContentEncoder
        Terminates the content stream.
        Specified by:
        complete in interface ContentEncoder
        Throws:
        java.io.IOException - if I/O error occurs while writing content
      • complete

        public final void complete()
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • assertNotCompleted

        protected void assertNotCompleted()
      • flushToChannel

        protected int flushToChannel()
                              throws java.io.IOException
        Flushes content of the session buffer to the channel and updates transport metrics.
        Returns:
        number of bytes written to the channel.
        Throws:
        java.io.IOException
        Since:
        4.3
      • writeToChannel

        protected int writeToChannel​(java.nio.ByteBuffer src)
                              throws java.io.IOException
        Flushes content of the given buffer to the channel and updates transport metrics.
        Returns:
        number of bytes written to the channel.
        Throws:
        java.io.IOException
        Since:
        4.3
      • writeToChannel

        protected int writeToChannel​(java.nio.ByteBuffer src,
                                     int limit)
                              throws java.io.IOException
        Transfers content of the source to the channel and updates transport metrics.
        Parameters:
        src - source.
        limit - max number of bytes to transfer.
        Returns:
        number of bytes transferred.
        Throws:
        java.io.IOException
        Since:
        4.3
      • writeToBuffer

        protected int writeToBuffer​(java.nio.ByteBuffer src,
                                    int limit)
                             throws java.io.IOException
        Transfers content of the source to the buffer and updates transport metrics.
        Parameters:
        src - source.
        limit - max number of bytes to transfer.
        Returns:
        number of bytes transferred.
        Throws:
        java.io.IOException
        Since:
        4.3
      • doWriteChunk

        private int doWriteChunk​(java.nio.ByteBuffer src,
                                 int chunk,
                                 boolean direct)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • doWriteChunk

        private int doWriteChunk​(java.nio.ByteBuffer src,
                                 boolean direct)
                          throws java.io.IOException
        Throws:
        java.io.IOException