net.i2p.router.networkdb.kademlia

## Class IterativeLookupSelector

- java.lang.Object
- - net.i2p.router.networkdb.kademlia.IterativeLookupSelector

- All Implemented Interfaces:
    MessageSelector

      class IterativeLookupSelector
      extends Object
      implements MessageSelector

  Slightly modified version of FloodOnlyLookupSelector. Always follows the DSRM entries.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IterativeLookupSelector(RouterContext ctx, IterativeSearchJob search)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `continueMatching()` Returns true if the selector should still keep searching for further matches.
    `long` | `getExpiration()` Returns the # of milliseconds since the epoch after which this selector should stop searching for matches.
    `boolean` | `isMatch(I2NPMessage message)` This only returns true for DSMs, not for DSRMs.
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### IterativeLookupSelector

          public IterativeLookupSelector(RouterContext ctx,
                                         IterativeSearchJob search)

  - ### Method Detail

    - #### continueMatching

          public boolean continueMatching()

      Description copied from interface: `MessageSelector`
      Returns true if the selector should still keep searching for further matches. This is called only if isMatch() returns true. If this returns true, isMatch() will not be called again.
      Specified by:
        `continueMatching` in interface `MessageSelector`

    - #### getExpiration

          public long getExpiration()

      Description copied from interface: `MessageSelector`
      Returns the # of milliseconds since the epoch after which this selector should stop searching for matches. At some time after expiration, if continueMatching() has not returned false, the job specified by OutNetMessage.getOnFailedReplyJob() will be run for every OutNetMessage associated with this selector (by OutboundMessageRegistry).
      Specified by:
        `getExpiration` in interface `MessageSelector`

    - #### isMatch

          public boolean isMatch(I2NPMessage message)

      This only returns true for DSMs, not for DSRMs.
      Specified by:
        `isMatch` in interface `MessageSelector`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`