## net.i2p.router
Interface TunnelManagerFacade

All Superinterfaces:
  Service

All Known Implementing Classes:
  DummyTunnelManagerFacade, TunnelPoolManager

public interface TunnelManagerFacade
extends Service

Build and maintain tunnels throughout the network.

Method Summary
`void` `buildTunnels(Destination client, ClientTunnelSettings settings)` the client connected (or updated their settings), so make sure we have the tunnels for them, and whenever necessary, ask them to authorize leases.
`int` `getFreeTunnelCount()` how many free inbound tunnels do we have available?
`int` `getInboundClientTunnelCount()` how many free inbound client tunnels do we have available?
`TunnelPoolSettings` `getInboundSettings()`
`TunnelPoolSettings` `getInboundSettings(Hash client)`
`long` `getLastParticipatingExpiration()` When does the last tunnel we are participating in expire?
`int` `getOutboundClientTunnelCount()` how many outbound client tunnels do we have available?
`TunnelPoolSettings` `getOutboundSettings()`
`TunnelPoolSettings` `getOutboundSettings(Hash client)`
`int` `getOutboundTunnelCount()` how many outbound tunnels do we have available?
`int` `getParticipatingCount()` how many tunnels are we participating in?
`TunnelInfo` `getTunnelInfo(TunnelId id)` Retrieve the information related to a particular tunnel
`boolean` `isInUse(Hash peer)` True if the peer currently part of a tunnel
`TunnelInfo` `selectInboundTunnel()` pick an inbound tunnel not bound to a particular destination
`TunnelInfo` `selectInboundTunnel(Hash destination)` pick an inbound tunnel bound to the given destination
`TunnelInfo` `selectOutboundTunnel()` pick an outbound tunnel not bound to a particular destination
`TunnelInfo` `selectOutboundTunnel(Hash destination)` pick an outbound tunnel bound to the given destination
`void` `setInboundSettings(Hash client, TunnelPoolSettings settings)`
`void` `setInboundSettings(TunnelPoolSettings settings)`
`void` `setOutboundSettings(Hash client, TunnelPoolSettings settings)`
`void` `setOutboundSettings(TunnelPoolSettings settings)`

Methods inherited from interface net.i2p.router.Service
`renderStatusHTML, restart, shutdown, startup`

Method Detail

### getTunnelInfo

    public TunnelInfo getTunnelInfo(TunnelId id)

  Retrieve the information related to a particular tunnel

  Parameters:
    `id` - the tunnelId as seen at the gateway

### selectInboundTunnel

    public TunnelInfo selectInboundTunnel()

  pick an inbound tunnel not bound to a particular destination

### selectInboundTunnel

    public TunnelInfo selectInboundTunnel(Hash destination)

  pick an inbound tunnel bound to the given destination

### selectOutboundTunnel

    public TunnelInfo selectOutboundTunnel()

  pick an outbound tunnel not bound to a particular destination

### selectOutboundTunnel

    public TunnelInfo selectOutboundTunnel(Hash destination)

  pick an outbound tunnel bound to the given destination

### isInUse

    public boolean isInUse(Hash peer)

  True if the peer currently part of a tunnel

### getParticipatingCount

    public int getParticipatingCount()

  how many tunnels are we participating in?

### getFreeTunnelCount

    public int getFreeTunnelCount()

  how many free inbound tunnels do we have available?

### getOutboundTunnelCount

    public int getOutboundTunnelCount()

  how many outbound tunnels do we have available?

### getInboundClientTunnelCount

    public int getInboundClientTunnelCount()

  how many free inbound client tunnels do we have available?

### getOutboundClientTunnelCount

    public int getOutboundClientTunnelCount()

  how many outbound client tunnels do we have available?

### getLastParticipatingExpiration

    public long getLastParticipatingExpiration()

  When does the last tunnel we are participating in expire?

### buildTunnels

    public void buildTunnels(Destination client,
                             ClientTunnelSettings settings)

  the client connected (or updated their settings), so make sure we have the tunnels for them, and whenever necessary, ask them to authorize leases.

### getInboundSettings

    public TunnelPoolSettings getInboundSettings()

### getOutboundSettings

    public TunnelPoolSettings getOutboundSettings()

### getInboundSettings

    public TunnelPoolSettings getInboundSettings(Hash client)

### getOutboundSettings

    public TunnelPoolSettings getOutboundSettings(Hash client)

### setInboundSettings

    public void setInboundSettings(TunnelPoolSettings settings)

### setOutboundSettings

    public void setOutboundSettings(TunnelPoolSettings settings)

### setInboundSettings

    public void setInboundSettings(Hash client,
                                   TunnelPoolSettings settings)

### setOutboundSettings

    public void setOutboundSettings(Hash client,
                                    TunnelPoolSettings settings)