Package com.tangosol.io.nio
Class ByteBufferReadBuffer
java.lang.Object
com.tangosol.io.AbstractReadBuffer
com.tangosol.io.nio.ByteBufferReadBuffer
- All Implemented Interfaces:
ReadBuffer,ByteSequence,HashEncoded,Cloneable
A ReadBuffer implementation on top of a Java NIO ByteBuffer.
- Author:
- cp 2006.04.05
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionfinal classThis is a simple implementation of the BufferInput interface on top of a ByteBuffer.Nested classes/interfaces inherited from class com.tangosol.io.AbstractReadBuffer
AbstractReadBuffer.AbstractBufferInputNested classes/interfaces inherited from interface com.tangosol.io.ReadBuffer
ReadBuffer.BufferInput -
Field Summary
Fields inherited from class com.tangosol.io.AbstractReadBuffer
NO_BINARY, NO_BYTESFields inherited from interface com.tangosol.util.HashEncoded
UNENCODED -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a ByteBufferReadBuffer on an NIO ByteBuffer. -
Method Summary
Modifier and TypeMethodDescriptionbytebyteAt(int of) Returns the byte at the specified offset.clone()Create a clone of this ReadBuffer object.voidcopyBytes(int ofBegin, int ofEnd, byte[] abDest, int ofDest) Copies bytes from this ReadBuffer into the destination byte array.Obtain the ByteBuffer that this ReadBuffer is based on.protected ReadBuffer.BufferInputFactory method: Instantiate a BufferInput object to read data from the ReadBuffer.protected ReadBufferinstantiateReadBuffer(int of, int cb) Factory method: Instantiate a ReadBuffer for a portion of this ReadBuffer.intlength()Determine the length of the buffer.toBinary(int of, int cb) Return a Binary object that holds the specified portion of this ReadBuffer.byte[]toByteArray(int of, int cb) Get a portion of the contents of the ReadBuffer as a byte array.Return a read-only ByteBuffer view of this ReadBuffer.toByteBuffer(int of, int cb) Return a read-only ByteBuffer view of the specified portion of this ReadBuffer.voidwriteTo(DataOutput out) Write the contents of this ReadBuffer to a DataOutput.voidwriteTo(DataOutput out, int of, int cb) Write the contents of this ReadBuffer to a DataOutput.voidwriteTo(OutputStream out) Write the contents of this ReadBuffer to an OutputStream.voidwriteTo(OutputStream out, int of, int cb) Write the contents of the ReadBuffer to an OutputStream.voidwriteTo(ByteBuffer buf) Write the contents of the Binary object to a ByteBuffer.voidwriteTo(ByteBuffer buf, int of, int cb) Write the contents of the Binary object to a ByteBuffer.Methods inherited from class com.tangosol.io.AbstractReadBuffer
checkBounds, equals, getBufferInput, getEncodedHash, getReadBuffer, readPackedInt, readUnsignedByte, sizeofPackedInt, subSequence, toBinary, toByteArrayMethods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.tangosol.io.ReadBuffer
equals, getBufferInput, getReadBuffer, subSequence, toBinary, toByteArray
-
Constructor Details
-
ByteBufferReadBuffer
Construct a ByteBufferReadBuffer on an NIO ByteBuffer.- Parameters:
buf- the underlying NIO ByteBuffer
-
-
Method Details
-
getByteBuffer
Obtain the ByteBuffer that this ReadBuffer is based on.- Returns:
- the underlying ByteBuffer
-
writeTo
Write the contents of this ReadBuffer to an OutputStream.- Specified by:
writeToin interfaceReadBuffer- Parameters:
out- an OutputStream to write to- Throws:
IOException- if an I/O exception occurs
-
writeTo
Write the contents of the ReadBuffer to an OutputStream.- Specified by:
writeToin interfaceReadBuffer- Parameters:
out- an OutputStream to write toof- the beginning index, inclusivecb- the number of bytes to write to an OutputStream- Throws:
IOException- if an I/O exception occurs
-
writeTo
Write the contents of this ReadBuffer to a DataOutput.- Specified by:
writeToin interfaceReadBuffer- Parameters:
out- a DataOutput to write to- Throws:
IOException- if an I/O exception occurs
-
writeTo
Write the contents of this ReadBuffer to a DataOutput.- Specified by:
writeToin interfaceReadBuffer- Parameters:
out- a DataOutput to write toof- the beginning index, inclusivecb- the number of bytes to write to a DataOutput- Throws:
IOException- if an I/O exception occurs
-
writeTo
Write the contents of the Binary object to a ByteBuffer.- Specified by:
writeToin interfaceReadBuffer- Parameters:
buf- a ByteBuffer to write to
-
writeTo
Write the contents of the Binary object to a ByteBuffer.- Specified by:
writeToin interfaceReadBuffer- Parameters:
buf- an ByteBuffer to write toof- the beginning index, inclusivecb- the number of bytes to write to a ByteBuffer- Throws:
IOException- if an I/O exception occurs
-
length
public int length()Determine the length of the buffer.- Specified by:
lengthin interfaceByteSequence- Specified by:
lengthin interfaceReadBuffer- Returns:
- the number of bytes of data represented by this ReadBuffer
-
byteAt
public byte byteAt(int of) Returns the byte at the specified offset. An offset ranges from0tolength() - 1. The first byte of the sequence is at offset0, the next at offset1, and so on, as for array indexing.- Specified by:
byteAtin interfaceByteSequence- Specified by:
byteAtin interfaceReadBuffer- Parameters:
of- the offset (index) of the byte- Returns:
- the byte at the specified offset in this ReadBuffer
-
copyBytes
public void copyBytes(int ofBegin, int ofEnd, byte[] abDest, int ofDest) Copies bytes from this ReadBuffer into the destination byte array.The first byte to be copied is at offset
ofBegin; the last byte to be copied is at offsetofEnd-1(thus the total number of bytes to be copied isofEnd - ofBegin). The bytes are copied into the sub-array ofabDeststarting at offsetofDestand ending at index:ofDest + (ofEnd - ofBegin) - 1This method is the ReadBuffer equivalent of
String.getChars(int, int, char[], int). It allows the caller to extract a chunk of bytes into the caller's own array.- Specified by:
copyBytesin interfaceReadBuffer- Parameters:
ofBegin- offset of the first byte in the ReadBuffer to copyofEnd- offset after the last byte in the ReadBuffer to copyabDest- the destination byte arrayofDest- the offset in the destination byte array to copy the first byte to
-
toByteArray
public byte[] toByteArray(int of, int cb) Get a portion of the contents of the ReadBuffer as a byte array.This method is an equivalent of
getReadBuffer(of, cb).toByteArray().- Specified by:
toByteArrayin interfaceReadBuffer- Overrides:
toByteArrayin classAbstractReadBuffer- Parameters:
of- the beginning index, inclusivecb- the number of bytes to include in the resulting byte[]- Returns:
- a byte[] containing the specified portion of this ReadBuffer
-
toBinary
Return a Binary object that holds the specified portion of this ReadBuffer.This method is an equivalent of
getReadBuffer(of, cb).toBinary().- Specified by:
toBinaryin interfaceReadBuffer- Overrides:
toBinaryin classAbstractReadBuffer- Parameters:
of- the beginning index, inclusivecb- the number of bytes to include in the Binary object- Returns:
- a Binary object containing the specified portion of this ReadBuffer
-
toByteBuffer
Return a read-only ByteBuffer view of this ReadBuffer. This view may or may not reflect any subsequent changes made to the underlying content.- Specified by:
toByteBufferin interfaceReadBuffer- Returns:
- a read-only ByteBuffer view of this ReadBuffer
-
toByteBuffer
Return a read-only ByteBuffer view of the specified portion of this ReadBuffer. This view may or may not reflect any subsequent changes made to the underlying content.This method is an equivalent of
getReadBuffer(of, cb).toByteBuffer().- Specified by:
toByteBufferin interfaceReadBuffer- Parameters:
of- the beginning index, inclusivecb- the number of bytes to include in the ByteBuffer object- Returns:
- a read-only ByteBuffer view of the specified portion of this ReadBuffer
-
clone
Create a clone of this ReadBuffer object.- Specified by:
clonein interfaceReadBuffer- Overrides:
clonein classAbstractReadBuffer- Returns:
- a ReadBuffer object with the same contents as this ReadBuffer object
-
instantiateReadBuffer
Factory method: Instantiate a ReadBuffer for a portion of this ReadBuffer.- Specified by:
instantiateReadBufferin classAbstractReadBuffer- Parameters:
of- the beginning index, inclusivecb- the number of bytes to include in the resulting ReadBuffer- Returns:
- a ReadBuffer that represents a portion of this ReadBuffer
-
instantiateBufferInput
Factory method: Instantiate a BufferInput object to read data from the ReadBuffer.- Specified by:
instantiateBufferInputin classAbstractReadBuffer- Returns:
- a new BufferInput reading from this ReadBuffer
-