Class Pipe


  • public class Pipe
    extends Object
    This is a buffer shared by both producers and consumers.
    • Field Detail

    • Method Detail

      • isProducerCompleted

        public boolean isProducerCompleted()
      • attachConsumer

        public void attachConsumer​(org.apache.http.nio.IOControl consumerIoControl)
        Set the consumers IOControl
        Parameters:
        consumerIoControl - IOControl of the consumer
      • consume

        public int consume​(org.apache.http.nio.ContentEncoder encoder)
                    throws IOException
        Consume the data from the buffer. Before calling this method attachConsumer method must be called with a valid IOControl.
        Parameters:
        encoder - encoder used to write the data means there will not be any data written in to this buffer
        Returns:
        number of bytes written (consumed)
        Throws:
        IOException - if an error occurred while consuming data
      • copyAndConsume

        public ByteBuffer copyAndConsume​(org.apache.http.nio.ContentEncoder encoder)
                                  throws IOException
        Consume the data from the buffer. Same as consume(org.apache.http.nio.ContentEncoder) but this gives a copy of data which has been consumed.
        Parameters:
        encoder - encoder used to write
        Returns:
        a buffer with data written (consumed)
        Throws:
        IOException - if an error occurred while consuming data
      • produce

        public int produce​(org.apache.http.nio.ContentDecoder decoder)
                    throws IOException
        Produce data in to the buffer.
        Parameters:
        decoder - decoder to read bytes from the underlying stream
        Returns:
        bytes read (consumed)
        Throws:
        IOException - if an error occurs while reading data
      • forceProducerComplete

        public void forceProducerComplete​(org.apache.http.nio.ContentDecoder decoder)
        Helper method to mark as producer completed. The normal behavior only set the boolean param to true only when decoder is completed. However in some cases it is needed to intentionally close chunk stream and mark as producer completed in order to prevent consumer further waiting on end of stream condition.
        Parameters:
        decoder - decoder instance to consume input
      • consumerError

        public void consumerError()
      • producerError

        public void producerError()
      • getInputStream

        public InputStream getInputStream()
        Creates an InputStream object on the underlying ByteBuffer. The returned InputStream can be used to read bytes from the underlying buffer which is being filled by the producer.
        Returns:
        An InputStream object
      • getOutputStream

        public OutputStream getOutputStream()
        Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.
        Returns:
        An OutputStream object
      • resetOutputStream

        public OutputStream resetOutputStream()
        Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.
        Returns:
        An OutputStream object
      • setSerializationComplete

        public void setSerializationComplete​(boolean serializationComplete)
      • setRawSerializationComplete

        public void setRawSerializationComplete​(boolean rawSerializationComplete)
      • forceSetSerializationRest

        public void forceSetSerializationRest()
      • isSerializationComplete

        public boolean isSerializationComplete()
      • hasHttpProducer

        public boolean hasHttpProducer()
      • isDiscardable

        public boolean isDiscardable()
      • setDiscardable

        public void setDiscardable​(boolean discardable)
      • isConsumeRequired

        public boolean isConsumeRequired()
                                  throws IOException
        This method returns whether buffer consumption is required or not.
        Returns:
        boolean
        Throws:
        IOException
      • isProducerError

        public boolean isProducerError()
        Checks the state of the producerError property
        Returns:
        boolean