org.apache.kafka.common.utils
Class Crc32

java.lang.Object
  extended by org.apache.kafka.common.utils.Crc32
All Implemented Interfaces:
java.util.zip.Checksum

public class Crc32
extends java.lang.Object
implements java.util.zip.Checksum

This class was taken from Hadoop org.apache.hadoop.util.PureJavaCrc32 A pure-java implementation of the CRC32 checksum that uses the same polynomial as the built-in native CRC32. This is to avoid the JNI overhead for certain uses of Checksumming where many small pieces of data are checksummed in succession. The current version is ~10x to 1.8x as fast as Sun's native java.util.zip.CRC32 in Java 1.6

See Also:
CRC32

Constructor Summary
Crc32()
          Create a new PureJavaCrc32 object.
 
Method Summary
static long crc32(byte[] bytes)
          Compute the CRC32 of the byte array
static long crc32(byte[] bytes, int offset, int size)
          Compute the CRC32 of the segment of the byte array given by the specified size and offset
 long getValue()
           
 void reset()
           
 void update(byte[] b, int off, int len)
           
 void update(int b)
           
 void updateInt(int input)
          Update the CRC32 given an integer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Crc32

public Crc32()
Create a new PureJavaCrc32 object.

Method Detail

crc32

public static long crc32(byte[] bytes)
Compute the CRC32 of the byte array

Parameters:
bytes - The array to compute the checksum for
Returns:
The CRC32

crc32

public static long crc32(byte[] bytes,
                         int offset,
                         int size)
Compute the CRC32 of the segment of the byte array given by the specified size and offset

Parameters:
bytes - The bytes to checksum
offset - the offset at which to begin checksumming
size - the number of bytes to checksum
Returns:
The CRC32

getValue

public long getValue()
Specified by:
getValue in interface java.util.zip.Checksum

reset

public void reset()
Specified by:
reset in interface java.util.zip.Checksum

update

public void update(byte[] b,
                   int off,
                   int len)
Specified by:
update in interface java.util.zip.Checksum

update

public final void update(int b)
Specified by:
update in interface java.util.zip.Checksum

updateInt

public final void updateInt(int input)
Update the CRC32 given an integer