org.apache.http.nio.util
Class SharedInputBuffer

java.lang.Object
  extended by org.apache.http.nio.util.ExpandableBuffer
      extended by org.apache.http.nio.util.SharedInputBuffer
All Implemented Interfaces:
BufferInfo, ContentInputBuffer

public class SharedInputBuffer
extends ExpandableBuffer
implements ContentInputBuffer

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 tread. This class is not threading safe.

Since:
4.0

Field Summary
 
Fields inherited from class org.apache.http.nio.util.ExpandableBuffer
buffer, INPUT_MODE, OUTPUT_MODE
 
Constructor Summary
SharedInputBuffer(int buffersize, IOControl ioctrl, ByteBufferAllocator allocator)
           
 
Method Summary
 void close()
           
 int consumeContent(ContentDecoder decoder)
          Reads content from the given ContentDecoder and stores it in this buffer.
protected  boolean isEndOfStream()
           
protected  boolean isShutdown()
           
 int read()
          Reads one byte from this buffer.
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
          Reads up to len bytes of data from this buffer into an array of bytes.
 void reset()
          Resets the buffer by clearing its state and stored content.
 void shutdown()
           
protected  void waitForData()
           
 
Methods inherited from class org.apache.http.nio.util.ExpandableBuffer
available, capacity, clear, ensureCapacity, expand, getMode, hasData, length, setInputMode, setOutputMode, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SharedInputBuffer

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

reset

public void reset()
Description copied from interface: ContentInputBuffer
Resets the buffer by clearing its state and stored content.

Specified by:
reset in interface ContentInputBuffer

consumeContent

public int consumeContent(ContentDecoder decoder)
                   throws IOException
Description copied from interface: ContentInputBuffer
Reads content from the given ContentDecoder and stores it in this buffer.

Specified by:
consumeContent in interface ContentInputBuffer
Parameters:
decoder - the content decoder.
Returns:
number of bytes read.
Throws:
IOException - in case of an I/O error.

waitForData

protected void waitForData()
                    throws IOException
Throws:
IOException

close

public void close()

shutdown

public void shutdown()

isShutdown

protected boolean isShutdown()

isEndOfStream

protected boolean isEndOfStream()

read

public int read()
         throws IOException
Description copied from interface: ContentInputBuffer
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.

Specified by:
read in interface ContentInputBuffer
Returns:
one byte
Throws:
IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
Description copied from interface: ContentInputBuffer
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.

Specified by:
read in interface ContentInputBuffer
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 - if an I/O error occurs.

read

public int read(byte[] b)
         throws IOException
Throws:
IOException


Copyright © 2005-2009 Apache Software Foundation. All Rights Reserved.