Class AbstractBinDataConsumer

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.nio.ByteBuffer EMPTY  
    • 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.
      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.ByteBuffer src, boolean endOfStream)
      Triggered to pass incoming data packet to the data consumer.
      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

        private static final java.nio.ByteBuffer EMPTY
    • Constructor Detail

      • AbstractBinDataConsumer

        public AbstractBinDataConsumer()
    • 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.ByteBuffer 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
      • 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
      • 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