java.lang.Object
org.apache.synapse.transport.passthru.Pipe

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

    • DEFAULT_TIME_OUT_VALUE

      public static final int DEFAULT_TIME_OUT_VALUE
      See Also:
  • Constructor Details

  • Method Details

    • 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
    • copyAndProduce

      public ByteBuffer copyAndProduce(org.apache.http.nio.ContentDecoder decoder) throws IOException
      Same as produce(org.apache.http.nio.ContentDecoder) and gives a copy of data produced
      Parameters:
      decoder - decoder to read bytes from the underlying stream
      Returns:
      bytes of data 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
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • 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()
    • getBuffer

      public ControlledByteBuffer getBuffer()
    • 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