Class Pipe
- 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 Summary
Fields Modifier and Type Field Description static intDEFAULT_TIME_OUT_VALUE
-
Constructor Summary
Constructors Constructor Description Pipe(org.apache.http.nio.IOControl producerIoControl, ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig)Pipe(ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidattachConsumer(org.apache.http.nio.IOControl consumerIoControl)Set the consumers IOControlintconsume(org.apache.http.nio.ContentEncoder encoder)Consume the data from the buffer.voidconsumerError()ByteBuffercopyAndConsume(org.apache.http.nio.ContentEncoder encoder)Consume the data from the buffer.ByteBuffercopyAndProduce(org.apache.http.nio.ContentDecoder decoder)Same asproduce(org.apache.http.nio.ContentDecoder)and gives a copy of data producedvoidforceProducerComplete(org.apache.http.nio.ContentDecoder decoder)Helper method to mark as producer completed.voidforceSetSerializationRest()ControlledByteBuffergetBuffer()InputStreamgetInputStream()Creates an InputStream object on the underlying ByteBuffer.OutputStreamgetOutputStream()Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.booleanhasHttpProducer()booleanisConsumeRequired()This method returns whether buffer consumption is required or not.booleanisDiscardable()booleanisProducerCompleted()booleanisProducerError()Checks the state of the producerError propertybooleanisSerializationComplete()intproduce(org.apache.http.nio.ContentDecoder decoder)Produce data in to the buffer.voidproducerError()OutputStreamresetOutputStream()Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.voidsetDiscardable(boolean discardable)voidsetRawSerializationComplete(boolean rawSerializationComplete)voidsetSerializationComplete(boolean serializationComplete)StringtoString()
-
-
-
Field Detail
-
DEFAULT_TIME_OUT_VALUE
public static final int DEFAULT_TIME_OUT_VALUE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Pipe
public Pipe(org.apache.http.nio.IOControl producerIoControl, ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig)
-
Pipe
public Pipe(ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig)
-
-
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 IOExceptionConsume 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 asconsume(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 IOExceptionProduce 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 asproduce(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
-
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 IOExceptionThis 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
-
-