Class Pipe
java.lang.Object
org.apache.synapse.transport.passthru.Pipe
This is a buffer shared by both producers and consumers.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionPipe(org.apache.http.nio.IOControl producerIoControl, ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig) Pipe(ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig) -
Method Summary
Modifier and TypeMethodDescriptionvoidattachConsumer(org.apache.http.nio.IOControl consumerIoControl) Set the consumers IOControlintconsume(org.apache.http.nio.ContentEncoder encoder) Consume the data from the buffer.voidcopyAndConsume(org.apache.http.nio.ContentEncoder encoder) Consume the data from the buffer.copyAndProduce(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.voidCreates an InputStream object on the underlying ByteBuffer.Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.booleanbooleanThis method returns whether buffer consumption is required or not.booleanbooleanbooleanChecks the state of the producerError propertybooleanintproduce(org.apache.http.nio.ContentDecoder decoder) Produce data in to the buffer.voidCreates a separate ByteBuffer for the output data and returns an OutputStream on top of it.voidsetDiscardable(boolean discardable) voidsetRawSerializationComplete(boolean rawSerializationComplete) voidsetSerializationComplete(boolean serializationComplete) toString()
-
Field Details
-
DEFAULT_TIME_OUT_VALUE
public static final int DEFAULT_TIME_OUT_VALUE- See Also:
-
-
Constructor Details
-
Pipe
public Pipe(org.apache.http.nio.IOControl producerIoControl, ControlledByteBuffer buffer, String name, BaseConfiguration baseConfig) -
Pipe
-
-
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
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
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
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
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
-
toString
-
consumerError
public void consumerError() -
producerError
public void producerError() -
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
Creates a separate ByteBuffer for the output data and returns an OutputStream on top of it.- Returns:
- An OutputStream object
-
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
-
hasHttpProducer
public boolean hasHttpProducer() -
isDiscardable
public boolean isDiscardable() -
setDiscardable
public void setDiscardable(boolean discardable) -
isConsumeRequired
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
-