org.apache.cassandra.utils
Class ByteBufferUtil
java.lang.Object
org.apache.cassandra.utils.ByteBufferUtil
public class ByteBufferUtil
- extends java.lang.Object
Utility methods to make ByteBuffers less painful
The following should illustrate the different ways byte buffers can be used
public void testArrayOffet()
{
byte[] b = "test_slice_array".getBytes();
ByteBuffer bb = ByteBuffer.allocate(1024);
assert bb.position() == 0;
assert bb.limit() == 1024;
assert bb.capacity() == 1024;
bb.put(b);
assert bb.position() == b.length;
assert bb.remaining() == bb.limit() - bb.position();
ByteBuffer bb2 = bb.slice();
assert bb2.position() == 0;
//slice should begin at other buffers current position
assert bb2.arrayOffset() == bb.position();
//to match the position in the underlying array one needs to
//track arrayOffset
assert bb2.limit()+bb2.arrayOffset() == bb.limit();
assert bb2.remaining() == bb.remaining();
}
}
Method Summary |
static void |
arrayCopy(java.nio.ByteBuffer buffer,
int position,
byte[] bytes,
int offset,
int length)
|
static java.nio.ByteBuffer |
bytes(int i)
|
static java.nio.ByteBuffer |
bytes(long n)
|
static java.nio.ByteBuffer |
bytes(java.lang.String s)
|
static java.lang.String |
bytesToHex(java.nio.ByteBuffer bytes)
|
static java.nio.ByteBuffer |
clone(java.nio.ByteBuffer o)
|
static int |
compare(byte[] o1,
java.nio.ByteBuffer o2)
|
static int |
compare(java.nio.ByteBuffer o1,
byte[] o2)
|
static int |
compareUnsigned(java.nio.ByteBuffer o1,
java.nio.ByteBuffer o2)
|
static byte[] |
getArray(java.nio.ByteBuffer buffer)
You should almost never use this. |
static byte[] |
getArray(java.nio.ByteBuffer b,
int start,
int length)
|
static java.nio.ByteBuffer |
hexToBytes(java.lang.String str)
|
static java.io.InputStream |
inputStream(java.nio.ByteBuffer bytes)
|
static int |
lastIndexOf(java.nio.ByteBuffer buffer,
byte valueToFind,
int startIndex)
ByteBuffer adaptation of org.apache.commons.lang.ArrayUtils.lastIndexOf method |
static java.nio.ByteBuffer |
readWithLength(java.io.DataInput in)
|
static java.nio.ByteBuffer |
readWithShortLength(java.io.DataInput in)
|
static java.nio.ByteBuffer |
skipShortLength(java.io.DataInput in)
|
static java.lang.String |
string(java.nio.ByteBuffer buffer)
|
static java.lang.String |
string(java.nio.ByteBuffer buffer,
java.nio.charset.Charset charset)
|
static java.lang.String |
string(java.nio.ByteBuffer buffer,
int position,
int length)
|
static java.lang.String |
string(java.nio.ByteBuffer buffer,
int position,
int length,
java.nio.charset.Charset charset)
|
static int |
toInt(java.nio.ByteBuffer bytes)
Convert a byte buffer to an integer. |
static void |
write(java.nio.ByteBuffer buffer,
java.io.DataOutput out)
|
static void |
writeWithLength(java.nio.ByteBuffer bytes,
java.io.DataOutput out)
|
static void |
writeWithShortLength(java.nio.ByteBuffer buffer,
java.io.DataOutput out)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EMPTY_BYTE_BUFFER
public static final java.nio.ByteBuffer EMPTY_BYTE_BUFFER
ByteBufferUtil
public ByteBufferUtil()
compareUnsigned
public static int compareUnsigned(java.nio.ByteBuffer o1,
java.nio.ByteBuffer o2)
compare
public static int compare(byte[] o1,
java.nio.ByteBuffer o2)
compare
public static int compare(java.nio.ByteBuffer o1,
byte[] o2)
string
public static java.lang.String string(java.nio.ByteBuffer buffer)
throws java.nio.charset.CharacterCodingException
- Throws:
java.nio.charset.CharacterCodingException
string
public static java.lang.String string(java.nio.ByteBuffer buffer,
int position,
int length)
throws java.nio.charset.CharacterCodingException
- Throws:
java.nio.charset.CharacterCodingException
string
public static java.lang.String string(java.nio.ByteBuffer buffer,
int position,
int length,
java.nio.charset.Charset charset)
throws java.nio.charset.CharacterCodingException
- Throws:
java.nio.charset.CharacterCodingException
string
public static java.lang.String string(java.nio.ByteBuffer buffer,
java.nio.charset.Charset charset)
throws java.nio.charset.CharacterCodingException
- Throws:
java.nio.charset.CharacterCodingException
getArray
public static byte[] getArray(java.nio.ByteBuffer buffer)
- You should almost never use this. Instead, use the write* methods to avoid copies.
getArray
public static byte[] getArray(java.nio.ByteBuffer b,
int start,
int length)
lastIndexOf
public static int lastIndexOf(java.nio.ByteBuffer buffer,
byte valueToFind,
int startIndex)
- ByteBuffer adaptation of org.apache.commons.lang.ArrayUtils.lastIndexOf method
- Parameters:
buffer
- the array to traverse for looking for the object, may be null
valueToFind
- the value to findstartIndex
- the start index to travers backwards from
- Returns:
- the last index of the value within the array, relative to buffer's arrayOffset
[that is, between buffer.position() and buffer.limit()];
-1
if not found.
bytes
public static java.nio.ByteBuffer bytes(java.lang.String s)
clone
public static java.nio.ByteBuffer clone(java.nio.ByteBuffer o)
arrayCopy
public static void arrayCopy(java.nio.ByteBuffer buffer,
int position,
byte[] bytes,
int offset,
int length)
writeWithLength
public static void writeWithLength(java.nio.ByteBuffer bytes,
java.io.DataOutput out)
throws java.io.IOException
- Throws:
java.io.IOException
write
public static void write(java.nio.ByteBuffer buffer,
java.io.DataOutput out)
throws java.io.IOException
- Throws:
java.io.IOException
writeWithShortLength
public static void writeWithShortLength(java.nio.ByteBuffer buffer,
java.io.DataOutput out)
readWithLength
public static java.nio.ByteBuffer readWithLength(java.io.DataInput in)
throws java.io.IOException
- Throws:
java.io.IOException
readWithShortLength
public static java.nio.ByteBuffer readWithShortLength(java.io.DataInput in)
throws java.io.IOException
- Parameters:
in
- data input
- Returns:
- An unsigned short in an integer.
- Throws:
java.io.IOException
- if an I/O error occurs.
skipShortLength
public static java.nio.ByteBuffer skipShortLength(java.io.DataInput in)
throws java.io.IOException
- Parameters:
in
- data input
- Returns:
- null
- Throws:
java.io.IOException
- if an I/O error occurs.
toInt
public static int toInt(java.nio.ByteBuffer bytes)
- Convert a byte buffer to an integer.
Does not change the byte buffer position.
- Parameters:
bytes
- byte buffer to convert to integer
- Returns:
- int representation of the byte buffer
bytes
public static java.nio.ByteBuffer bytes(int i)
bytes
public static java.nio.ByteBuffer bytes(long n)
inputStream
public static java.io.InputStream inputStream(java.nio.ByteBuffer bytes)
bytesToHex
public static java.lang.String bytesToHex(java.nio.ByteBuffer bytes)
hexToBytes
public static java.nio.ByteBuffer hexToBytes(java.lang.String str)
Copyright © 2011 The Apache Software Foundation