org.apache.cassandra.utils
Class ByteBufferUtil

java.lang.Object
  extended by 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(); } }


Field Summary
static java.nio.ByteBuffer EMPTY_BYTE_BUFFER
           
 
Constructor Summary
ByteBufferUtil()
           
 
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
 

Field Detail

EMPTY_BYTE_BUFFER

public static final java.nio.ByteBuffer EMPTY_BYTE_BUFFER
Constructor Detail

ByteBufferUtil

public ByteBufferUtil()
Method Detail

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 find
startIndex - 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