Package com.google.common.hash
Class AbstractByteHasher
- java.lang.Object
-
- com.google.common.hash.AbstractHasher
-
- com.google.common.hash.AbstractByteHasher
-
- All Implemented Interfaces:
Hasher
,PrimitiveSink
- Direct Known Subclasses:
ChecksumHashFunction.ChecksumHasher
,MacHashFunction.MacHasher
,MessageDigestHashFunction.MessageDigestHasher
abstract class AbstractByteHasher extends AbstractHasher
AbstractHasher
that handles converting primitives to bytes using a scratchByteBuffer
and streams all bytes to a sink to compute the hash.
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.ByteBuffer
scratch
-
Constructor Summary
Constructors Constructor Description AbstractByteHasher()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Hasher
putByte(byte b)
Puts a byte into this sink.Hasher
putBytes(byte[] bytes)
Puts an array of bytes into this sink.Hasher
putBytes(byte[] bytes, int off, int len)
Puts a chunk of an array of bytes into this sink.Hasher
putBytes(java.nio.ByteBuffer bytes)
Puts the remaining bytes of a byte buffer into this sink.Hasher
putChar(char c)
Puts a character into this sink.Hasher
putInt(int i)
Puts an int into this sink.Hasher
putLong(long l)
Puts a long into this sink.Hasher
putShort(short s)
Puts a short into this sink.protected abstract void
update(byte b)
Updates this hasher with the given byte.protected void
update(byte[] b)
Updates this hasher with the given bytes.protected void
update(byte[] b, int off, int len)
Updates this hasher withlen
bytes starting atoff
in the given buffer.private Hasher
update(int bytes)
Updates the sink with the given number of bytes from the buffer.protected void
update(java.nio.ByteBuffer b)
Updates this hasher with bytes from the given buffer.-
Methods inherited from class com.google.common.hash.AbstractHasher
putBoolean, putDouble, putFloat, putObject, putString, putUnencodedChars
-
-
-
-
Method Detail
-
update
protected abstract void update(byte b)
Updates this hasher with the given byte.
-
update
protected void update(byte[] b)
Updates this hasher with the given bytes.
-
update
protected void update(byte[] b, int off, int len)
Updates this hasher withlen
bytes starting atoff
in the given buffer.
-
update
protected void update(java.nio.ByteBuffer b)
Updates this hasher with bytes from the given buffer.
-
update
private Hasher update(int bytes)
Updates the sink with the given number of bytes from the buffer.
-
putByte
public Hasher putByte(byte b)
Description copied from interface:PrimitiveSink
Puts a byte into this sink.- Parameters:
b
- a byte- Returns:
- this instance
-
putBytes
public Hasher putBytes(byte[] bytes)
Description copied from interface:PrimitiveSink
Puts an array of bytes into this sink.- Specified by:
putBytes
in interfaceHasher
- Specified by:
putBytes
in interfacePrimitiveSink
- Overrides:
putBytes
in classAbstractHasher
- Parameters:
bytes
- a byte array- Returns:
- this instance
-
putBytes
public Hasher putBytes(byte[] bytes, int off, int len)
Description copied from interface:PrimitiveSink
Puts a chunk of an array of bytes into this sink.bytes[off]
is the first byte written,bytes[off + len - 1]
is the last.- Specified by:
putBytes
in interfaceHasher
- Specified by:
putBytes
in interfacePrimitiveSink
- Overrides:
putBytes
in classAbstractHasher
- Parameters:
bytes
- a byte arrayoff
- the start offset in the arraylen
- the number of bytes to write- Returns:
- this instance
-
putBytes
public Hasher putBytes(java.nio.ByteBuffer bytes)
Description copied from interface:PrimitiveSink
Puts the remaining bytes of a byte buffer into this sink.bytes.position()
is the first byte written,bytes.limit() - 1
is the last. The position of the buffer will be equal to the limit when this method returns.- Specified by:
putBytes
in interfaceHasher
- Specified by:
putBytes
in interfacePrimitiveSink
- Overrides:
putBytes
in classAbstractHasher
- Parameters:
bytes
- a byte buffer- Returns:
- this instance
-
putShort
public Hasher putShort(short s)
Description copied from interface:PrimitiveSink
Puts a short into this sink.- Specified by:
putShort
in interfaceHasher
- Specified by:
putShort
in interfacePrimitiveSink
- Overrides:
putShort
in classAbstractHasher
-
putInt
public Hasher putInt(int i)
Description copied from interface:PrimitiveSink
Puts an int into this sink.- Specified by:
putInt
in interfaceHasher
- Specified by:
putInt
in interfacePrimitiveSink
- Overrides:
putInt
in classAbstractHasher
-
putLong
public Hasher putLong(long l)
Description copied from interface:PrimitiveSink
Puts a long into this sink.- Specified by:
putLong
in interfaceHasher
- Specified by:
putLong
in interfacePrimitiveSink
- Overrides:
putLong
in classAbstractHasher
-
putChar
public Hasher putChar(char c)
Description copied from interface:PrimitiveSink
Puts a character into this sink.- Specified by:
putChar
in interfaceHasher
- Specified by:
putChar
in interfacePrimitiveSink
- Overrides:
putChar
in classAbstractHasher
-
-