## net.i2p.router.tunnel.pool
Class ExploratoryPeerSelector

    java.lang.Object
      net.i2p.router.tunnel.pool.TunnelPeerSelector
          net.i2p.router.tunnel.pool.ExploratoryPeerSelector

class ExploratoryPeerSelector
extends TunnelPeerSelector

Pick peers randomly out of the not-failing pool, and put them into randomly ordered tunnels.

Constructor Summary
`(package private)` `ExploratoryPeerSelector()`

Method Summary
`protected boolean` `filterUnreachable(RouterContext ctx, boolean isInbound, boolean isExploratory)`
`java.util.Set` `getExclude(RouterContext ctx, boolean isInbound, boolean isExploratory)` Pick peers that we want to avoid
`protected int` `getLength(RouterContext ctx, TunnelPoolSettings settings)`
`protected java.util.List` `selectExplicit(RouterContext ctx, TunnelPoolSettings settings, int length)`
`java.util.List` `selectPeers(RouterContext ctx, TunnelPoolSettings settings)` Which peers should go into the next tunnel for the given settings?
`protected boolean` `shouldSelectExplicit(TunnelPoolSettings settings)`

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

Constructor Detail

### ExploratoryPeerSelector

    ExploratoryPeerSelector()

Method Detail

### selectPeers

    public java.util.List selectPeers(RouterContext ctx,
                                      TunnelPoolSettings settings)

  Description copied from class: `TunnelPeerSelector`
  Which peers should go into the next tunnel for the given settings?

  Specified by:
    `selectPeers` in class `TunnelPeerSelector`
  Returns:
    ordered list of Hash objects (one per peer) specifying what order they should appear in a tunnel (endpoint first). This includes the local router in the list. If there are no tunnels or peers to build through, and the settings reject 0 hop tunnels, this will return null.

### getLength

    protected int getLength(RouterContext ctx,
                            TunnelPoolSettings settings)

### shouldSelectExplicit

    protected boolean shouldSelectExplicit(TunnelPoolSettings settings)

### selectExplicit

    protected java.util.List selectExplicit(RouterContext ctx,
                                            TunnelPoolSettings settings,
                                            int length)

### getExclude

    public java.util.Set getExclude(RouterContext ctx,
                                    boolean isInbound,
                                    boolean isExploratory)

  Pick peers that we want to avoid

### filterUnreachable

    protected boolean filterUnreachable(RouterContext ctx,
                                        boolean isInbound,
                                        boolean isExploratory)