public class

SessionInputBufferImpl

extends ExpandableBuffer
implements SessionInputBuffer
java.lang.Object
   ↳ org.apache.http.nio.util.ExpandableBuffer
     ↳ org.apache.http.impl.nio.reactor.SessionInputBufferImpl

Class Overview

Default implementation of SessionInputBuffer based on the ExpandableBuffer class.

The following parameters can be used to customize the behavior of this class:

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
SessionInputBufferImpl(int buffersize, int linebuffersize, ByteBufferAllocator allocator, HttpParams params)
SessionInputBufferImpl(int buffersize, int linebuffersize, HttpParams params)
Public Methods
int fill(ReadableByteChannel channel)
Makes an attempt to fill the buffer with data from the given ReadableByteChannel.
int read(ByteBuffer dst)
Reads a sequence of bytes from this buffer into the destination buffer.
int read(WritableByteChannel dst)
Reads a sequence of bytes from this buffer into the destination channel.
int read()
Reads one byte from the buffer.
int read(WritableByteChannel dst, int maxLen)
Reads a sequence of bytes from this buffer into the destination channel, up to the given maximum limit.
int read(ByteBuffer dst, int maxLen)
Reads a sequence of bytes from this buffer into the destination buffer, up to the given maximum limit.
String readLine(boolean endOfStream)
Attempts to transfer a complete line of characters up to a line delimiter from this buffer to a newly created string.
boolean readLine(CharArrayBuffer linebuffer, boolean endOfStream)
Attempts to transfer a complete line of characters up to a line delimiter from this buffer to the destination buffer.
[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.reactor.SessionInputBuffer
From interface org.apache.http.nio.util.BufferInfo

Public Constructors

public SessionInputBufferImpl (int buffersize, int linebuffersize, ByteBufferAllocator allocator, HttpParams params)

public SessionInputBufferImpl (int buffersize, int linebuffersize, HttpParams params)

Public Methods

public int fill (ReadableByteChannel channel)

Makes an attempt to fill the buffer with data from the given ReadableByteChannel.

Parameters
channel the source channel
Returns
  • The number of bytes read, possibly zero, or -1 if the channel has reached end-of-stream.
Throws
IOException

public int read (ByteBuffer dst)

Reads a sequence of bytes from this buffer into the destination buffer. The exact number of bytes transferred depends on availability of data in this buffer and capacity of the destination buffer.

Parameters
dst the destination buffer.
Returns
  • The number of bytes read, possibly zero.

public int read (WritableByteChannel dst)

Reads a sequence of bytes from this buffer into the destination channel. The exact number of bytes transferred depends on availability of data in this buffer.

Parameters
dst the destination channel.
Returns
  • The number of bytes read, possibly zero.
Throws
IOException

public int read ()

Reads one byte from the 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.

Returns
  • one byte

public int read (WritableByteChannel dst, int maxLen)

Reads a sequence of bytes from this buffer into the destination channel, up to the given maximum limit. The exact number of bytes transferred depends on availability of data in this buffer, but cannot be more than maxLen value.

Parameters
dst the destination channel.
maxLen the maximum number of bytes to be read.
Returns
  • The number of bytes read, possibly zero.
Throws
IOException

public int read (ByteBuffer dst, int maxLen)

Reads a sequence of bytes from this buffer into the destination buffer, up to the given maximum limit. The exact number of bytes transferred depends on availability of data in this buffer and capacity of the destination buffer, but cannot be more than maxLen value.

Parameters
dst the destination buffer.
maxLen the maximum number of bytes to be read.
Returns
  • The number of bytes read, possibly zero.

public String readLine (boolean endOfStream)

Attempts to transfer a complete line of characters up to a line delimiter from this buffer to a newly created string. If a complete line is available in the buffer, the sequence of chars is transferred to a newly created string. The line delimiter itself is discarded. If a complete line is not available in the buffer, this method returns null. If endOfStream parameter is set to true this method assumes the end of stream has been reached and the content currently stored in the buffer should be treated as a complete line.

The choice of a char encoding and line delimiter sequence is up to the specific implementations of this interface.

Returns
  • a string representing a complete line, if available. null otherwise.
Throws
CharacterCodingException

public boolean readLine (CharArrayBuffer linebuffer, boolean endOfStream)

Attempts to transfer a complete line of characters up to a line delimiter from this buffer to the destination buffer. If a complete line is available in the buffer, the sequence of chars is transferred to the destination buffer the method returns true. The line delimiter itself is discarded. If a complete line is not available in the buffer, this method returns false without transferring anything to the destination buffer. If endOfStream parameter is set to true this method assumes the end of stream has been reached and the content currently stored in the buffer should be treated as a complete line.

The choice of a char encoding and line delimiter sequence is up to the specific implementations of this interface.

Parameters
linebuffer the destination buffer.
Returns
  • true if a sequence of chars representing a complete line has been transferred to the destination buffer, false otherwise.
Throws
CharacterCodingException