|
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.jppf.io.ChannelInputSource
public class ChannelInputSource
Input source backed by a ReadableByteChannel.
| Field Summary | |
|---|---|
protected ReadableByteChannel |
channel
The backing ReadableByteChannel. |
| Constructor Summary | |
|---|---|
ChannelInputSource(ReadableByteChannel channel)
Initialize this input source with the specified SocketWrapper. |
|
| Method Summary | |
|---|---|
void |
close()
This method does nothing. |
int |
read(byte[] data,
int offset,
int len)
Read data from this input source into an array of bytes. |
int |
read(ByteBuffer data)
Read data from this input source into a byte buffer. |
int |
readInt()
Read an int value from this input source. |
int |
skip(int n)
Skip n bytes of data form this input source. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected ReadableByteChannel channel
ReadableByteChannel.
| Constructor Detail |
|---|
public ChannelInputSource(ReadableByteChannel channel)
SocketWrapper.
channel - the backing SocketWrapper.| Method Detail |
|---|
public int read(byte[] data,
int offset,
int len)
throws Exception
read in interface InputSourcedata - the buffer into which to write.offset - the position in the buffer where to start storing the data.len - the size in bytes of the data to read.
Exception - if an IO error occurs.InputSource.read(byte[], int, int)
public int read(ByteBuffer data)
throws Exception
Implementation details:
We read the data by small chunks of max StreamConstants.TEMP_BUFFER_SIZE bytes wrapped in a direct ByteBuffer,
to work around the fact that Sun NIO implementation of SocketChannelImpl.read()
attempts to allocate a direct buffer of the requested data size (i.e. data.remaining() in our case),
if the destination ByteBuffer is not direct.
This implementation can result in a "OutOfMemoryError: Direct buffer space" when the size of the data to read is too large.
See Sun Bug ID: 4879883 for details.
read in interface InputSourcedata - the buffer into which to write.
Exception - if an IO error occurs.InputSource.read(java.nio.ByteBuffer)
public int readInt()
throws Exception
readInt in interface InputSourceException - if an IO error occurs.InputSource.readInt()
public int skip(int n)
throws Exception
n bytes of data form this input source.
skip in interface InputSourcen - the number of bytes to skip.
Exception - if an IO error occurs.InputSource.skip(int)
public void close()
throws IOException
close in interface CloseableIOException - if an IO error occurs.Closeable.close()
|
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||