net.i2p.kademlia

## Interface KBucket<T extends SimpleDataStructure>

- Type Parameters:
    `T` - type of SimpleDataStructure objects stored in the bucket
  All Known Implementing Classes:
    KBucketImpl

      public interface KBucket<T extends SimpleDataStructure>

  Group, without inherent ordering, a set of keys a certain distance away from a local key, using XOR as the distance metric Refactored from net.i2p.router.networkdb.kademlia

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(T key)` Add the peer to the bucket
    `void` | `clear()`
    `Set<T>` | `getEntries()` Retrieve all routing table entries stored in the bucket
    `void` | `getEntries(SelectionCollector<T> collector)`
    `int` | `getKeyCount()` Number of keys already contained in this kbucket
    `long` | `getLastChanged()` The last-changed timestamp
    `int` | `getRangeBegin()` Lowest order high bit for difference keys.
    `int` | `getRangeEnd()` Highest high bit for the difference keys.
    `boolean` | `remove(T key)` Remove the key from the bucket
    `void` | `setLastChanged()` Update the last-changed timestamp to now.

- - ### Method Detail

    - #### add

          boolean add(T key)

      Add the peer to the bucket
      Returns:
        true if added

    - #### clear

          void clear()

    - #### getEntries

          Set<T> getEntries()

      Retrieve all routing table entries stored in the bucket
      Returns:
        set of Hash structures

    - #### getEntries

          void getEntries(SelectionCollector<T> collector)

    - #### getKeyCount

          int getKeyCount()

      Number of keys already contained in this kbucket

    - #### getLastChanged

          long getLastChanged()

      The last-changed timestamp

    - #### getRangeBegin

          int getRangeBegin()

      Lowest order high bit for difference keys. The lower-bounds distance of this bucket is 2**begin. If begin == 0, this is the closest bucket.

    - #### getRangeEnd

          int getRangeEnd()

      Highest high bit for the difference keys. The upper-bounds distance of this bucket is (2**(end+1)) - 1. If begin == end, the bucket cannot be split further. If end == (numbits - 1), this is the furthest bucket.

    - #### remove

          boolean remove(T key)

      Remove the key from the bucket
      Returns:
        true if the key existed in the bucket before removing it, else false

    - #### setLastChanged

          void setLastChanged()

      Update the last-changed timestamp to now.