public class

SharedInputBuffer

extends ExpandableBuffer
implements ContentInputBuffer
java.lang.Object
   ↳ org.apache.http.nio.util.ExpandableBuffer
     ↳ org.apache.http.nio.util.SharedInputBuffer

Class Overview

Implementation of the ContentInputBuffer interface that can be shared by multiple threads, usually the I/O dispatch of an I/O reactor and a worker thread.

The I/O dispatch thread is expect to transfer data from ContentDecoder to the buffer by calling consumeContent(ContentDecoder).

The worker thread is expected to read the data from the buffer by calling read() or read(byte[], int, int) methods.

In case of an abnormal situation or when no longer needed the buffer must be shut down using shutdown() method.

Summary

[Expand]
Inherited Constants
From class org.apache.http.nio.util.ExpandableBuffer
[Expand]
Inherited Fields
From class org.apache.http.nio.util.ExpandableBuffer
Public Constructors
SharedInputBuffer(int buffersize, IOControl ioctrl, ByteBufferAllocator allocator)
Public Methods
int available()
Returns available capacity of this buffer.
int capacity()
Returns the total capacity of this buffer.
void close()
int consumeContent(ContentDecoder decoder)
Reads content from the given ContentDecoder and stores it in this buffer.
boolean hasData()
Determines if the buffer contains data.
int length()
Returns the length of this buffer.
int read()
Reads one byte from this buffer.
int read(byte[] b, int off, int len)
Reads up to len bytes of data from this buffer into an array of bytes.
int read(byte[] b)
void reset()
Resets the buffer by clearing its state and stored content.
void shutdown()
Protected Methods
boolean isEndOfStream()
boolean isShutdown()
void waitForData()
[Expand]
Inherited Methods
From class org.apache.http.nio.util.ExpandableBuffer
From class java.lang.Object
From interface org.apache.http.io.BufferInfo
From interface org.apache.http.nio.util.BufferInfo
From interface org.apache.http.nio.util.ContentInputBuffer

Public Constructors

public SharedInputBuffer (int buffersize, IOControl ioctrl, ByteBufferAllocator allocator)

Public Methods

public int available ()

Returns available capacity of this buffer.

Returns
  • buffer length.

public int capacity ()

Returns the total capacity of this buffer.

Returns
  • total capacity.

public void close ()

public int consumeContent (ContentDecoder decoder)

Reads content from the given ContentDecoder and stores it in this buffer.

Parameters
decoder the content decoder.
Returns
  • number of bytes read.
Throws
IOException

public boolean hasData ()

Determines if the buffer contains data.

Returns
  • true if there is data in the buffer, false otherwise.

public int length ()

Returns the length of this buffer.

Returns
  • buffer length.

public int read ()

Reads one byte from this buffer. If the buffer is empty this method can throw a runtime exception. The exact type of runtime exception thrown by this method depends on implementation. This method returns -1 if the end of content stream has been reached.

Returns
  • one byte
Throws
IOException

public int read (byte[] b, int off, int len)

Reads up to len bytes of data from this buffer into an array of bytes. The exact number of bytes read depends how many bytes are stored in the buffer.

If off is negative, or len is negative, or off+len is greater than the length of the array b, this method can throw a runtime exception. The exact type of runtime exception thrown by this method depends on implementation. This method returns -1 if the end of content stream has been reached.

Parameters
b the buffer into which the data is read.
off the start offset in array b at which the data is written.
len the maximum number of bytes to read.
Returns
  • the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached.
Throws
IOException

public int read (byte[] b)

Throws
IOException

public void reset ()

Resets the buffer by clearing its state and stored content.

public void shutdown ()

Protected Methods

protected boolean isEndOfStream ()

protected boolean isShutdown ()

protected void waitForData ()

Throws
IOException