Package com.scurrilous.circe.impl
Class AbstractStatelessIntHash
- java.lang.Object
-
- com.scurrilous.circe.impl.AbstractStatelessIntHash
-
- All Implemented Interfaces:
Hash
,StatelessHash
,StatelessIntHash
public abstract class AbstractStatelessIntHash extends java.lang.Object implements StatelessIntHash
Base implementation for stateless (but not incremental) integer hash functions.
-
-
Constructor Summary
Constructors Constructor Description AbstractStatelessIntHash()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description int
calculate(byte[] input)
Evaluates this hash function for the entire given input array.int
calculate(byte[] input, int index, int length)
Evaluates this hash function for the given range of the given input array.int
calculate(long address, long length)
Evaluates this hash function for the memory with the given address and length.int
calculate(java.nio.ByteBuffer input)
Evaluates this hash function with the remaining contents of the given input buffer.protected abstract int
calculateUnchecked(byte[] input, int index, int length)
Evaluates this hash function for the given range of the given input array.boolean
supportsUnsafe()
Returns whether this hash function supports unsafe access to arbitrary memory addresses using methods such asStatefulHash.update(long, long)
,StatelessIntHash.calculate(long, long)
, orIncrementalIntHash.resume(int, long, long)
.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.scurrilous.circe.StatelessIntHash
createStateful
-
-
-
-
Method Detail
-
supportsUnsafe
public boolean supportsUnsafe()
Description copied from interface:Hash
Returns whether this hash function supports unsafe access to arbitrary memory addresses using methods such asStatefulHash.update(long, long)
,StatelessIntHash.calculate(long, long)
, orIncrementalIntHash.resume(int, long, long)
. Such functions are generally implemented in native code.- Specified by:
supportsUnsafe
in interfaceHash
- Returns:
- true if unsafe access is supported, false if not
-
calculate
public int calculate(byte[] input)
Description copied from interface:StatelessIntHash
Evaluates this hash function for the entire given input array.- Specified by:
calculate
in interfaceStatelessIntHash
- Parameters:
input
- the input array- Returns:
- the output of the hash function
-
calculate
public int calculate(byte[] input, int index, int length)
Description copied from interface:StatelessIntHash
Evaluates this hash function for the given range of the given input array.- Specified by:
calculate
in interfaceStatelessIntHash
- Parameters:
input
- the input arrayindex
- the starting index of the first input bytelength
- the length of the input range- Returns:
- the output of the hash function
-
calculate
public int calculate(java.nio.ByteBuffer input)
Description copied from interface:StatelessIntHash
Evaluates this hash function with the remaining contents of the given input buffer. This method leaves the buffer position at the limit.- Specified by:
calculate
in interfaceStatelessIntHash
- Parameters:
input
- the input buffer- Returns:
- the output of the hash function
-
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 interfaceStatelessIntHash
- Parameters:
address
- the base address of the inputlength
- the length of the input- Returns:
- the output of the hash function
- See Also:
Hash.supportsUnsafe()
-
calculateUnchecked
protected abstract int calculateUnchecked(byte[] input, int index, int length)
Evaluates this hash function for the given range of the given input array. The index and length parameters have already been validated.- Parameters:
input
- the input arrayindex
- the starting index of the first input bytelength
- the length of the input range- Returns:
- the output of the hash function
-
-