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 int
DEFAULT_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 void
attachConsumer(org.apache.http.nio.IOControl consumerIoControl)
Set the consumers IOControlint
consume(org.apache.http.nio.ContentEncoder encoder)
Consume the data from the buffer.void
consumerError()
ByteBuffer
copyAndConsume(org.apache.http.nio.ContentEncoder encoder)
Consume the data from the buffer.ByteBuffer
copyAndProduce(org.apache.http.nio.ContentDecoder decoder)
Same asproduce(org.apache.http.nio.ContentDecoder)
and gives a copy of data producedvoid
forceProducerComplete(org.apache.http.nio.ContentDecoder decoder)
Helper method to mark as producer completed.void
forceSetSerializationRest()
ControlledByteBuffer
getBuffer()
InputStream
getInputStream()
Creates an InputStream object on the underlying ByteBuffer.OutputStream
getOutputStream()
Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.boolean
hasHttpProducer()
boolean
isConsumeRequired()
This method returns whether buffer consumption is required or not.boolean
isDiscardable()
boolean
isProducerCompleted()
boolean
isProducerError()
Checks the state of the producerError propertyboolean
isSerializationComplete()
int
produce(org.apache.http.nio.ContentDecoder decoder)
Produce data in to the buffer.void
producerError()
OutputStream
resetOutputStream()
Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.void
setDiscardable(boolean discardable)
void
setRawSerializationComplete(boolean rawSerializationComplete)
void
setSerializationComplete(boolean serializationComplete)
String
toString()
-
-
-
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 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 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 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 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 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
-
-