Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.i2p.router.networkdb.kademlia
Class LocalHash

    java.lang.Object
      net.i2p.data.DataStructureImpl
          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`

Constructor Summary
`LocalHash(byte[] b)`
`LocalHash(Hash h)`

Method Summary
`byte[]` | `cachedXor(Hash key)` Calculate the xor with the current object and the specified hash, caching values where possible.
`void` | `clearXorCache()` Deprecated. unused
`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
`equals, getData, hashCode, readBytes, setData, toBase64, toString, writeBytes`

Methods inherited from class net.i2p.data.DataStructureImpl
`calculateHash, fromBase64, fromByteArray, read, toByteArray`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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()

  Deprecated. unused

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD