Class LocalHash
- java.lang.Object
-
- net.i2p.data.SimpleDataStructure
-
- net.i2p.data.Hash
-
- net.i2p.router.networkdb.kademlia.LocalHash
-
- All Implemented Interfaces:
DataStructure
class LocalHash extends Hash
Pull the caching used only by KBucketImpl out of Hash and put it here.- Since:
- 0.7.14
- Author:
- jrandom, moved from Hash.java by zzz
-
-
Field Summary
-
Fields inherited from class net.i2p.data.Hash
FAKE_HASH, HASH_LENGTH
-
Fields inherited from class net.i2p.data.SimpleDataStructure
_data
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
cachedXor(Hash key)
Calculate the xor with the current object and the specified hash, caching values where possible.void
clearXorCache()
void
prepareCache()
Prepare this hash's cache for xor values - very few hashes will need it, so we don't want to waste the memory, and lazy initialization would incur online overhead to verify the initialization.-
Methods inherited from class net.i2p.data.Hash
clearCache, create, create, create, hashCode, length, readBytes, setData, toBase32, toBase64
-
Methods inherited from class net.i2p.data.SimpleDataStructure
calculateHash, equals, fromBase64, fromByteArray, getData, read, toByteArray, toString, writeBytes
-
-
-
-
Constructor Detail
-
LocalHash
public LocalHash(Hash h)
-
LocalHash
public LocalHash(byte[] b)
-
-
Method Detail
-
prepareCache
public void prepareCache()
Prepare this hash's cache for xor values - very few hashes will need it, so we don't want to waste the memory, and lazy initialization would incur online overhead to verify the initialization.
-
cachedXor
public byte[] cachedXor(Hash key) throws IllegalStateException
Calculate the xor with the current object and the specified hash, caching values where possible. Currently this keeps up to MAX_CACHED_XOR (1024) entries, and uses an essentially random ejection policy. Later perhaps go for an LRU or FIFO?- Throws:
IllegalStateException
- if you try to use the cache without first preparing this object's cache via .prepareCache()
-
clearXorCache
public void clearXorCache()
-
-