Class LocalHash
java.lang.Object
net.i2p.data.SimpleDataStructure
net.i2p.data.Hash
net.i2p.router.networkdb.kademlia.LocalHash
- All Implemented Interfaces:
DataStructure
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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbyte[]
Calculate the xor with the current object and the specified hash, caching values where possible.void
void
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 Details
-
LocalHash
-
LocalHash
public LocalHash(byte[] b)
-
-
Method Details
-
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
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()
-