Class PureJavaCrc32C

java.lang.Object
org.iq80.leveldb.util.PureJavaCrc32C
All Implemented Interfaces:
Checksum

public class PureJavaCrc32C extends Object implements Checksum
A pure-java implementation of the CRC32 checksum that uses the CRC32-C polynomial, the same polynomial used by iSCSI and implemented on many Intel chipsets supporting SSE4.2.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private int
    the current CRC value, bit-flipped
    private static final int
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
    (package private) static final int[]
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create a new PureJavaCrc32 object.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
     
    int
     
    long
     
    static int
    mask(int crc)
    Return a masked representation of crc.
    final void
     
    static int
    unmask(int maskedCrc)
    Return the crc whose masked representation is masked_crc.
    void
    update(byte[] b, int off, int len)
     
    void
    update(int b)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface java.util.zip.Checksum

    update, update
  • Field Details

    • MASK_DELTA

      private static final int MASK_DELTA
      See Also:
    • crc

      private int crc
      the current CRC value, bit-flipped
    • T8_0

      static final int[] T8_0
    • T8_1

      static final int[] T8_1
    • T8_2

      static final int[] T8_2
    • T8_3

      static final int[] T8_3
    • T8_4

      static final int[] T8_4
    • T8_5

      static final int[] T8_5
    • T8_6

      static final int[] T8_6
    • T8_7

      static final int[] T8_7
  • Constructor Details

    • PureJavaCrc32C

      public PureJavaCrc32C()
      Create a new PureJavaCrc32 object.
  • Method Details

    • mask

      public static int mask(int crc)
      Return a masked representation of crc.

      Motivation: it is problematic to compute the CRC of a string that contains embedded CRCs. Therefore we recommend that CRCs stored somewhere (e.g., in files) should be masked before being stored.

    • unmask

      public static int unmask(int maskedCrc)
      Return the crc whose masked representation is masked_crc.
    • getMaskedValue

      public int getMaskedValue()
    • getIntValue

      public int getIntValue()
    • getValue

      public long getValue()
      Specified by:
      getValue in interface Checksum
    • reset

      public final void reset()
      Specified by:
      reset in interface Checksum
    • update

      public void update(byte[] b, int off, int len)
      Specified by:
      update in interface Checksum
    • update

      public void update(int b)
      Specified by:
      update in interface Checksum