Class AbstractCharDataConsumer

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract int capacityIncrement()
      Triggered to obtain the capacity increment.
      private void checkResult​(java.nio.charset.CoderResult result)  
      protected abstract void completed()
      Triggered to signal completion of data processing.
      void consume​(java.nio.ByteBuffer src)
      Triggered to pass incoming data to the data consumer.
      protected abstract void data​(java.nio.CharBuffer src, boolean endOfStream)
      Triggered to pass incoming data packet to the data consumer.
      private void doDecode​(boolean endOfStream)  
      private java.nio.charset.CharsetDecoder getCharsetDecoder()  
      protected void setCharset​(java.nio.charset.Charset charset)  
      void streamEnd​(java.util.List<? extends Header> trailers)
      Triggered to signal termination of the data stream.
      void updateCapacity​(CapacityChannel capacityChannel)
      Triggered to signal ability of the underlying data stream to receive data capacity update.
      • Methods inherited from class java.lang.Object

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

      • EMPTY_BIN

        private static final java.nio.ByteBuffer EMPTY_BIN
      • charBuffer

        private final java.nio.CharBuffer charBuffer
      • charset

        private volatile java.nio.charset.Charset charset
      • charsetDecoder

        private volatile java.nio.charset.CharsetDecoder charsetDecoder
      • byteBuffer

        private volatile java.nio.ByteBuffer byteBuffer
    • Constructor Detail

      • AbstractCharDataConsumer

        protected AbstractCharDataConsumer​(int bufSize,
                                           CharCodingConfig charCodingConfig)
      • AbstractCharDataConsumer

        public AbstractCharDataConsumer()
    • Method Detail

      • capacityIncrement

        protected abstract int capacityIncrement()
        Triggered to obtain the capacity increment.
        Returns:
        the number of bytes this consumer is prepared to process.
      • data

        protected abstract void data​(java.nio.CharBuffer src,
                                     boolean endOfStream)
                              throws java.io.IOException
        Triggered to pass incoming data packet to the data consumer.
        Parameters:
        src - the data packet.
        endOfStream - flag indicating whether this data packet is the last in the data stream.
        Throws:
        java.io.IOException
      • completed

        protected abstract void completed()
                                   throws java.io.IOException
        Triggered to signal completion of data processing.
        Throws:
        java.io.IOException
      • setCharset

        protected final void setCharset​(java.nio.charset.Charset charset)
      • updateCapacity

        public final void updateCapacity​(CapacityChannel capacityChannel)
                                  throws java.io.IOException
        Description copied from interface: AsyncDataConsumer
        Triggered to signal ability of the underlying data stream to receive data capacity update. The data consumer can choose to write data immediately inside the call or asynchronously at some later point.
        Specified by:
        updateCapacity in interface AsyncDataConsumer
        Parameters:
        capacityChannel - the channel for capacity updates.
        Throws:
        java.io.IOException
      • checkResult

        private void checkResult​(java.nio.charset.CoderResult result)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • doDecode

        private void doDecode​(boolean endOfStream)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • getCharsetDecoder

        private java.nio.charset.CharsetDecoder getCharsetDecoder()
      • consume

        public final void consume​(java.nio.ByteBuffer src)
                           throws java.io.IOException
        Description copied from interface: AsyncDataConsumer
        Triggered to pass incoming data to the data consumer. The consumer must consume the entire content of the data buffer. The consumer must stop incrementing its capacity on the capacity channel if it is unable to accept more data. Once the data consumer has handled accumulated data or allocated more intermediate storage it can update its capacity information on the capacity channel.
        Specified by:
        consume in interface AsyncDataConsumer
        Parameters:
        src - data source.
        Throws:
        java.io.IOException
      • streamEnd

        public final void streamEnd​(java.util.List<? extends Header> trailers)
                             throws HttpException,
                                    java.io.IOException
        Description copied from interface: AsyncDataConsumer
        Triggered to signal termination of the data stream.
        Specified by:
        streamEnd in interface AsyncDataConsumer
        Parameters:
        trailers - data stream trailers.
        Throws:
        HttpException
        java.io.IOException