## 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` `getInboundBuildQueueSize()` count how many inbound tunnel requests we have received but not yet processed
`Map<Hash,TunnelPool>` `getInboundClientPools()` for TunnelRenderer in router console
`int` `getInboundClientTunnelCount()` how many free inbound client tunnels do we have available?
`TunnelPool` `getInboundExploratoryPool()` for TunnelRenderer in router console
`TunnelPoolSettings` `getInboundSettings()`
`TunnelPoolSettings` `getInboundSettings(Hash client)`
`long` `getLastParticipatingExpiration()` When does the last tunnel we are participating in expire?
`Map<Hash,TunnelPool>` `getOutboundClientPools()` for TunnelRenderer in router console
`int` `getOutboundClientTunnelCount()` how many outbound client tunnels do we have available?
`int` `getOutboundClientTunnelCount(Hash destination)` how many outbound client tunnels in this pool?
`TunnelPool` `getOutboundExploratoryPool()` for TunnelRenderer in router console
`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?
`double` `getShareRatio()`
`TunnelInfo` `getTunnelInfo(TunnelId id)` Retrieve the information related to a particular tunnel
`boolean` `isValidTunnel(Hash client, TunnelInfo tunnel)` Is a tunnel a valid member of the pool?
`void` `listPools(List<TunnelPool> out)` for TunnelRenderer in router console
`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
`Set<Hash>` `selectPeersInTooManyTunnels()`
`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

    TunnelInfo getTunnelInfo(TunnelId id)

  Retrieve the information related to a particular tunnel

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

### selectInboundTunnel

    TunnelInfo selectInboundTunnel()

  pick an inbound tunnel not bound to a particular destination

### selectInboundTunnel

    TunnelInfo selectInboundTunnel(Hash destination)

  pick an inbound tunnel bound to the given destination

### selectOutboundTunnel

    TunnelInfo selectOutboundTunnel()

  pick an outbound tunnel not bound to a particular destination

### selectOutboundTunnel

    TunnelInfo selectOutboundTunnel(Hash destination)

  pick an outbound tunnel bound to the given destination

### isValidTunnel

    boolean isValidTunnel(Hash client,
                          TunnelInfo tunnel)

  Is a tunnel a valid member of the pool?

### getParticipatingCount

    int getParticipatingCount()

  how many tunnels are we participating in?

### getFreeTunnelCount

    int getFreeTunnelCount()

  how many free inbound tunnels do we have available?

### getOutboundTunnelCount

    int getOutboundTunnelCount()

  how many outbound tunnels do we have available?

### getInboundClientTunnelCount

    int getInboundClientTunnelCount()

  how many free inbound client tunnels do we have available?

### getOutboundClientTunnelCount

    int getOutboundClientTunnelCount()

  how many outbound client tunnels do we have available?

### getOutboundClientTunnelCount

    int getOutboundClientTunnelCount(Hash destination)

  how many outbound client tunnels in this pool?

### getShareRatio

    double getShareRatio()

### getLastParticipatingExpiration

    long getLastParticipatingExpiration()

  When does the last tunnel we are participating in expire?

### getInboundBuildQueueSize

    int getInboundBuildQueueSize()

  count how many inbound tunnel requests we have received but not yet processed

### selectPeersInTooManyTunnels

    Set<Hash> selectPeersInTooManyTunnels()

  Returns:
    Set of peers that should not be allowed to be in another tunnel

### buildTunnels

    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

    TunnelPoolSettings getInboundSettings()

### getOutboundSettings

    TunnelPoolSettings getOutboundSettings()

### getInboundSettings

    TunnelPoolSettings getInboundSettings(Hash client)

### getOutboundSettings

    TunnelPoolSettings getOutboundSettings(Hash client)

### setInboundSettings

    void setInboundSettings(TunnelPoolSettings settings)

### setOutboundSettings

    void setOutboundSettings(TunnelPoolSettings settings)

### setInboundSettings

    void setInboundSettings(Hash client,
                            TunnelPoolSettings settings)

### setOutboundSettings

    void setOutboundSettings(Hash client,
                             TunnelPoolSettings settings)

### listPools

    void listPools(List<TunnelPool> out)

  for TunnelRenderer in router console

### getInboundClientPools

    Map<Hash,TunnelPool> getInboundClientPools()

  for TunnelRenderer in router console

### getOutboundClientPools

    Map<Hash,TunnelPool> getOutboundClientPools()

  for TunnelRenderer in router console

### getInboundExploratoryPool

    TunnelPool getInboundExploratoryPool()

  for TunnelRenderer in router console

### getOutboundExploratoryPool

    TunnelPool getOutboundExploratoryPool()

  for TunnelRenderer in router console