Package com.scurrilous.circe
Interface IncrementalLongHash
-
- All Superinterfaces:
Hash
,StatelessHash
,StatelessLongHash
- All Known Implementing Classes:
AbstractIncrementalLongHash
,AbstractLongCrc
,NormalLongCrc
,ReflectedLongCrc
public interface IncrementalLongHash extends StatelessLongHash
Incremental stateless long integer hash function, which has the property that its output is the same as (or easily derivable from) its state. Specifically, for any sequence M partitioned arbitrarily into two subsequences M1 M2:h(M) = h'(h(M1), M2)
where h corresponds to thecalculate
function and h' corresponds to theresume(long, byte[])
function.Note that stateful hash functions obtained from incremental stateless hash functions are also incremental.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description long
resume(long current, byte[] input)
Evaluates this hash function as if the entire given input array were appended to the previously hashed input.long
resume(long current, byte[] input, int index, int length)
Evaluates this hash function as if the given range of the given input array were appended to the previously hashed input.long
resume(long current, long address, long length)
Evaluates this hash function as if the memory with the given address and length were appended to the previously hashed input.long
resume(long current, java.nio.ByteBuffer input)
Evaluates this hash function as if the remaining contents of the given input buffer were appended to the previously hashed input.-
Methods inherited from interface com.scurrilous.circe.Hash
algorithm, length, supportsUnsafe
-
Methods inherited from interface com.scurrilous.circe.StatelessLongHash
calculate, calculate, calculate, calculate, createStateful
-
-
-
-
Method Detail
-
resume
long resume(long current, byte[] input)
Evaluates this hash function as if the entire given input array were appended to the previously hashed input.- Parameters:
current
- the hash output for input hashed so farinput
- the input array- Returns:
- the output of the hash function for the concatenated input
-
resume
long resume(long current, byte[] input, int index, int length)
Evaluates this hash function as if the given range of the given input array were appended to the previously hashed input.- Parameters:
current
- the hash output for input hashed so farinput
- the input arrayindex
- the starting index of the first input bytelength
- the length of the input range- Returns:
- the output of the hash function for the concatenated input
- Throws:
java.lang.IndexOutOfBoundsException
- if index is negative orindex + length
is greater than the array length
-
resume
long resume(long current, java.nio.ByteBuffer input)
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.- Parameters:
current
- the hash output for input hashed so farinput
- the input buffer- Returns:
- the output of the hash function for the concatenated input
-
resume
long resume(long current, long address, long length)
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.- Parameters:
current
- the hash output for input hashed so faraddress
- the base address of the inputlength
- the length of the input- Returns:
- the output of the hash function for the concatenated input
- Throws:
java.lang.UnsupportedOperationException
- if this function does not support unsafe memory access- See Also:
Hash.supportsUnsafe()
-
-