Class Sse42Crc32C

All Implemented Interfaces:
Hash, IncrementalIntHash, StatelessHash, StatelessIntHash

public final class Sse42Crc32C extends AbstractIncrementalIntHash implements IncrementalIntHash
Implementation of CRC-32C using the SSE 4.2 CRC instruction.
  • Constructor Details

    • Sse42Crc32C

      Sse42Crc32C()
    • Sse42Crc32C

      public Sse42Crc32C(int[] chunkWords)
  • Method Details

    • isSupported

      public static boolean isSupported()
      Returns whether SSE 4.2 CRC-32C is supported on this system.
      Returns:
      true if this class is supported, false if not
    • finalize

      protected void finalize()
      Overrides:
      finalize in class Object
    • algorithm

      public String algorithm()
      Description copied from interface: Hash
      Returns the canonical name of this hash algorithm.
      Specified by:
      algorithm in interface Hash
      Returns:
      the name of this hash algorithm
    • length

      public int length()
      Description copied from interface: Hash
      Returns the length in bytes of the output of this hash function.
      Specified by:
      length in interface Hash
      Returns:
      the hash length in bytes
    • supportsUnsafe

      public boolean supportsUnsafe()
      Description copied from interface: Hash
      Returns whether this hash function supports unsafe access to arbitrary memory addresses using methods such as StatefulHash.update(long, long), StatelessIntHash.calculate(long, long), or IncrementalIntHash.resume(int, long, long). Such functions are generally implemented in native code.
      Specified by:
      supportsUnsafe in interface Hash
      Overrides:
      supportsUnsafe in class AbstractIncrementalIntHash
      Returns:
      true if unsafe access is supported, false if not
    • calculate

      public int calculate(long address, long length)
      Description copied from interface: StatelessIntHash
      Evaluates this hash function for the memory with the given address and length. The arguments are generally not checked in any way and will likely lead to a VM crash or undefined results if invalid.
      Specified by:
      calculate in interface StatelessIntHash
      Overrides:
      calculate in class AbstractIncrementalIntHash
      Parameters:
      address - the base address of the input
      length - the length of the input
      Returns:
      the output of the hash function
      See Also:
    • resume

      public int resume(int current, ByteBuffer input)
      Description copied from interface: IncrementalIntHash
      Evaluates this hash function as if the remaining contents of the given input buffer were appended to the previously hashed input. This method leaves the buffer position at the limit.
      Specified by:
      resume in interface IncrementalIntHash
      Overrides:
      resume in class AbstractIncrementalIntHash
      Parameters:
      current - the hash output for input hashed so far
      input - the input buffer
      Returns:
      the output of the hash function for the concatenated input
    • resume

      public int resume(int current, long address, long length)
      Description copied from interface: IncrementalIntHash
      Evaluates this hash function as if the memory with the given address and length were appended to the previously hashed input. The arguments are generally not checked in any way and will likely lead to a VM crash or undefined results if invalid.
      Specified by:
      resume in interface IncrementalIntHash
      Overrides:
      resume in class AbstractIncrementalIntHash
      Parameters:
      current - the hash output for input hashed so far
      address - the base address of the input
      length - the length of the input
      Returns:
      the output of the hash function for the concatenated input
      See Also:
    • initial

      protected int initial()
      Description copied from class: AbstractIncrementalIntHash
      The initial state of the hash function, which is the same as the output value for an empty input sequence.
      Specified by:
      initial in class AbstractIncrementalIntHash
      Returns:
      the initial hash state/output
    • resumeUnchecked

      protected int resumeUnchecked(int current, byte[] input, int index, int length)
      Description copied from class: AbstractIncrementalIntHash
      Evaluates this hash function as if the given range of the given input array were appended to the previously hashed input. The index and length parameters have already been validated.
      Specified by:
      resumeUnchecked in class AbstractIncrementalIntHash
      Parameters:
      current - the hash output for input hashed so far
      input - the input array
      index - the starting index of the first input byte
      length - the length of the input range
      Returns:
      the output of the hash function for the concatenated input