Class AbstractContentEncoder

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void assertNotCompleted()  
      void complete()
      Terminates the content stream.
      private int doWriteChunk​(java.nio.ByteBuffer src, boolean direct)  
      private int doWriteChunk​(java.nio.ByteBuffer src, int chunk, boolean direct)  
      protected int flushToChannel()
      Flushes content of the session buffer to the channel and updates transport metrics.
      boolean isCompleted()
      Returns true if the entity has been transferred in its entirety.
      protected int writeToBuffer​(java.nio.ByteBuffer src, int limit)
      Transfers content of the source to the buffer and updates transport metrics.
      protected int writeToChannel​(java.nio.ByteBuffer src)
      Flushes content of the given buffer to the channel and updates transport metrics.
      protected int writeToChannel​(java.nio.ByteBuffer src, int limit)
      Transfers content of the source to the channel and updates transport metrics.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • channel

        protected final java.nio.channels.WritableByteChannel channel
      • completed

        protected boolean completed
        TODO: make private
    • Constructor Detail

      • AbstractContentEncoder

        public AbstractContentEncoder​(java.nio.channels.WritableByteChannel channel,
                                      SessionOutputBuffer buffer,
                                      HttpTransportMetricsImpl 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

      • 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()
                      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
      • 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