net.i2p.router.dummy

## Class DummyTunnelManagerFacade

- java.lang.Object
- - net.i2p.router.dummy.DummyTunnelManagerFacade

- All Implemented Interfaces:
    Service, TunnelManagerFacade

      public class DummyTunnelManagerFacade
      extends Object
      implements TunnelManagerFacade

  Build and maintain tunnels throughout the network.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DummyTunnelManagerFacade()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addAlias(Destination dest, ClientTunnelSettings settings, Destination existingClient)` Add another destination to the same tunnels.
    `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.
    `void` | `fail(Hash peer)`
    `int` | `getFreeTunnelCount()` how many free inbound tunnels do we have available?
    `GhostPeerManager` | `getGhostPeerManager()` Get the ghost peer manager for tracking unresponsive peers.
    `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
    `TunnelPool` | `getInboundPool(Hash client)`
    `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
    `TunnelPool` | `getOutboundPool(Hash client)`
    `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()`
    `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
    `void` | `removeAlias(Destination dest)` Remove another destination to the same tunnels.
    `void` | `removeTunnels(Destination client)` Must be called AFTER deregistration by the client manager.
    `void` | `renderStatusHTML(Writer out)`
    `void` | `restart()` Perform a soft restart.
    `TunnelInfo` | `selectInboundExploratoryTunnel(Hash closestTo)` Pick the inbound exploratory tunnel with the gateway closest to the given hash.
    `TunnelInfo` | `selectInboundTunnel(Hash destination)` Pick a random inbound tunnel from the given destination's pool
    `TunnelInfo` | `selectInboundTunnel(Hash destination, Hash closestTo)` Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool.
    `TunnelInfo` | `selectOutboundExploratoryTunnel(Hash closestTo)` Pick the outbound exploratory tunnel with the endpoint closest to the given hash.
    `TunnelInfo` | `selectOutboundTunnel()` Pick a random outbound exploratory tunnel
    `TunnelInfo` | `selectOutboundTunnel(Hash destination)` Pick a random outbound tunnel from the given destination's pool
    `TunnelInfo` | `selectOutboundTunnel(Hash destination, Hash closestTo)` Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool.
    `Set<Hash>` | `selectPeersInTooManyTunnels()`
    `void` | `setInboundSettings(Hash client, TunnelPoolSettings settings)`
    `void` | `setInboundSettings(TunnelPoolSettings settings)`
    `void` | `setOutboundSettings(Hash client, TunnelPoolSettings settings)`
    `void` | `setOutboundSettings(TunnelPoolSettings settings)`
    `void` | `shutdown()` Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully.
    `void` | `startup()` Instruct the service that it should start normal operation.

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

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

    - ### Methods inherited from interface net.i2p.router.TunnelManagerFacade

      `selectInboundTunnel`

- - ### Constructor Detail

    - #### DummyTunnelManagerFacade

          public DummyTunnelManagerFacade()

  - ### Method Detail

    - #### addAlias

          public boolean addAlias(Destination dest,
                                  ClientTunnelSettings settings,
                                  Destination existingClient)

      Description copied from interface: `TunnelManagerFacade`
      Add another destination to the same tunnels. Must have same encryption key and a different signing key.
      Specified by:
        `addAlias` in interface `TunnelManagerFacade`
      Returns:
        success

    - #### buildTunnels

          public void buildTunnels(Destination client,
                                   ClientTunnelSettings settings)

      Description copied from interface: `TunnelManagerFacade`
      The client connected (or updated their settings), so make sure we have the tunnels for them, and whenever necessary, ask them to authorize leases.
      Specified by:
        `buildTunnels` in interface `TunnelManagerFacade`

    - #### fail

          public void fail(Hash peer)

      Specified by:
        `fail` in interface `TunnelManagerFacade`

    - #### getFreeTunnelCount

          public int getFreeTunnelCount()

      Description copied from interface: `TunnelManagerFacade`
      how many free inbound tunnels do we have available?
      Specified by:
        `getFreeTunnelCount` in interface `TunnelManagerFacade`

    - #### getGhostPeerManager

          public GhostPeerManager getGhostPeerManager()

      Description copied from interface: `TunnelManagerFacade`
      Get the ghost peer manager for tracking unresponsive peers.
      Specified by:
        `getGhostPeerManager` in interface `TunnelManagerFacade`
      Returns:
        the ghost peer manager or null

    - #### getInboundBuildQueueSize

          public int getInboundBuildQueueSize()

      Description copied from interface: `TunnelManagerFacade`
      count how many inbound tunnel requests we have received but not yet processed
      Specified by:
        `getInboundBuildQueueSize` in interface `TunnelManagerFacade`

    - #### getInboundClientPools

          public Map<Hash,TunnelPool> getInboundClientPools()

      Description copied from interface: `TunnelManagerFacade`
      for TunnelRenderer in router console
      Specified by:
        `getInboundClientPools` in interface `TunnelManagerFacade`

    - #### getInboundClientTunnelCount

          public int getInboundClientTunnelCount()

      Description copied from interface: `TunnelManagerFacade`
      how many free inbound client tunnels do we have available?
      Specified by:
        `getInboundClientTunnelCount` in interface `TunnelManagerFacade`

    - #### getInboundExploratoryPool

          public TunnelPool getInboundExploratoryPool()

      Description copied from interface: `TunnelManagerFacade`
      for TunnelRenderer in router console
      Specified by:
        `getInboundExploratoryPool` in interface `TunnelManagerFacade`

    - #### getInboundPool

          public TunnelPool getInboundPool(Hash client)

      Specified by:
        `getInboundPool` in interface `TunnelManagerFacade`
      Returns:
        pool or null

    - #### getInboundSettings

          public TunnelPoolSettings getInboundSettings()

      Specified by:
        `getInboundSettings` in interface `TunnelManagerFacade`

    - #### getInboundSettings

          public TunnelPoolSettings getInboundSettings(Hash client)

      Specified by:
        `getInboundSettings` in interface `TunnelManagerFacade`

    - #### getLastParticipatingExpiration

          public long getLastParticipatingExpiration()

      Description copied from interface: `TunnelManagerFacade`
      When does the last tunnel we are participating in expire?
      Specified by:
        `getLastParticipatingExpiration` in interface `TunnelManagerFacade`

    - #### getOutboundClientPools

          public Map<Hash,TunnelPool> getOutboundClientPools()

      Description copied from interface: `TunnelManagerFacade`
      for TunnelRenderer in router console
      Specified by:
        `getOutboundClientPools` in interface `TunnelManagerFacade`

    - #### getOutboundClientTunnelCount

          public int getOutboundClientTunnelCount()

      Description copied from interface: `TunnelManagerFacade`
      how many outbound client tunnels do we have available?
      Specified by:
        `getOutboundClientTunnelCount` in interface `TunnelManagerFacade`

    - #### getOutboundClientTunnelCount

          public int getOutboundClientTunnelCount(Hash destination)

      Description copied from interface: `TunnelManagerFacade`
      how many outbound client tunnels in this pool?
      Specified by:
        `getOutboundClientTunnelCount` in interface `TunnelManagerFacade`

    - #### getOutboundExploratoryPool

          public TunnelPool getOutboundExploratoryPool()

      Description copied from interface: `TunnelManagerFacade`
      for TunnelRenderer in router console
      Specified by:
        `getOutboundExploratoryPool` in interface `TunnelManagerFacade`

    - #### getOutboundPool

          public TunnelPool getOutboundPool(Hash client)

      Specified by:
        `getOutboundPool` in interface `TunnelManagerFacade`
      Returns:
        pool or null

    - #### getOutboundSettings

          public TunnelPoolSettings getOutboundSettings()

      Specified by:
        `getOutboundSettings` in interface `TunnelManagerFacade`

    - #### getOutboundSettings

          public TunnelPoolSettings getOutboundSettings(Hash client)

      Specified by:
        `getOutboundSettings` in interface `TunnelManagerFacade`

    - #### getOutboundTunnelCount

          public int getOutboundTunnelCount()

      Description copied from interface: `TunnelManagerFacade`
      how many outbound tunnels do we have available?
      Specified by:
        `getOutboundTunnelCount` in interface `TunnelManagerFacade`

    - #### getParticipatingCount

          public int getParticipatingCount()

      Description copied from interface: `TunnelManagerFacade`
      how many tunnels are we participating in?
      Specified by:
        `getParticipatingCount` in interface `TunnelManagerFacade`

    - #### getShareRatio

          public double getShareRatio()

      Specified by:
        `getShareRatio` in interface `TunnelManagerFacade`

    - #### isValidTunnel

          public boolean isValidTunnel(Hash client,
                                       TunnelInfo tunnel)

      Description copied from interface: `TunnelManagerFacade`
      Is a tunnel a valid member of the pool?
      Specified by:
        `isValidTunnel` in interface `TunnelManagerFacade`

    - #### listPools

          public void listPools(List<TunnelPool> out)

      Description copied from interface: `TunnelManagerFacade`
      for TunnelRenderer in router console
      Specified by:
        `listPools` in interface `TunnelManagerFacade`

    - #### removeAlias

          public void removeAlias(Destination dest)

      Description copied from interface: `TunnelManagerFacade`
      Remove another destination to the same tunnels.
      Specified by:
        `removeAlias` in interface `TunnelManagerFacade`

    - #### removeTunnels

          public void removeTunnels(Destination client)

      Description copied from interface: `TunnelManagerFacade`
      Must be called AFTER deregistration by the client manager.
      Specified by:
        `removeTunnels` in interface `TunnelManagerFacade`

    - #### renderStatusHTML

          public void renderStatusHTML(Writer out)
                                throws IOException

      Specified by:
        `renderStatusHTML` in interface `Service`
      Throws:
        `IOException`

    - #### restart

          public void restart()

      Description copied from interface: `Service`
      Perform a soft restart.
      Specified by:
        `restart` in interface `Service`

    - #### selectInboundExploratoryTunnel

          public TunnelInfo selectInboundExploratoryTunnel(Hash closestTo)

      Description copied from interface: `TunnelManagerFacade`
      Pick the inbound exploratory tunnel with the gateway closest to the given hash. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.
      Specified by:
        `selectInboundExploratoryTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `closestTo` - non-null
      Returns:
        null if none

    - #### selectInboundTunnel

          public TunnelInfo selectInboundTunnel(Hash destination)

      Description copied from interface: `TunnelManagerFacade`
      Pick a random inbound tunnel from the given destination's pool
      Specified by:
        `selectInboundTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `destination` - if null, returns inbound exploratory tunnel
      Returns:
        null if none

    - #### selectInboundTunnel

          public TunnelInfo selectInboundTunnel(Hash destination,
                                                Hash closestTo)

      Description copied from interface: `TunnelManagerFacade`
      Pick the inbound tunnel with the gateway closest to the given hash from the given destination's pool. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.
      Specified by:
        `selectInboundTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `destination` - if null, returns inbound exploratory tunnel
        `closestTo` - non-null
      Returns:
        null if none

    - #### selectOutboundExploratoryTunnel

          public TunnelInfo selectOutboundExploratoryTunnel(Hash closestTo)

      Description copied from interface: `TunnelManagerFacade`
      Pick the outbound exploratory tunnel with the endpoint closest to the given hash. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.
      Specified by:
        `selectOutboundExploratoryTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `closestTo` - non-null
      Returns:
        null if none

    - #### selectOutboundTunnel

          public TunnelInfo selectOutboundTunnel()

      Description copied from interface: `TunnelManagerFacade`
      Pick a random outbound exploratory tunnel
      Specified by:
        `selectOutboundTunnel` in interface `TunnelManagerFacade`
      Returns:
        null if none

    - #### selectOutboundTunnel

          public TunnelInfo selectOutboundTunnel(Hash destination)

      Description copied from interface: `TunnelManagerFacade`
      Pick a random outbound tunnel from the given destination's pool
      Specified by:
        `selectOutboundTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `destination` - if null, returns outbound exploratory tunnel
      Returns:
        null if none

    - #### selectOutboundTunnel

          public TunnelInfo selectOutboundTunnel(Hash destination,
                                                 Hash closestTo)

      Description copied from interface: `TunnelManagerFacade`
      Pick the outbound tunnel with the endpoint closest to the given hash from the given destination's pool. By using this instead of the random selectTunnel(), we force some locality in OBEP-IBGW connections to minimize those connections network-wide.
      Specified by:
        `selectOutboundTunnel` in interface `TunnelManagerFacade`
      Parameters:
        `destination` - if null, returns outbound exploratory tunnel
        `closestTo` - non-null
      Returns:
        null if none

    - #### selectPeersInTooManyTunnels

          public Set<Hash> selectPeersInTooManyTunnels()

      Specified by:
        `selectPeersInTooManyTunnels` in interface `TunnelManagerFacade`
      Returns:
        Set of peers that should not be allowed to be in another tunnel

    - #### setInboundSettings

          public void setInboundSettings(Hash client,
                                         TunnelPoolSettings settings)

      Specified by:
        `setInboundSettings` in interface `TunnelManagerFacade`

    - #### setInboundSettings

          public void setInboundSettings(TunnelPoolSettings settings)

      Specified by:
        `setInboundSettings` in interface `TunnelManagerFacade`

    - #### setOutboundSettings

          public void setOutboundSettings(Hash client,
                                          TunnelPoolSettings settings)

      Specified by:
        `setOutboundSettings` in interface `TunnelManagerFacade`

    - #### setOutboundSettings

          public void setOutboundSettings(TunnelPoolSettings settings)

      Specified by:
        `setOutboundSettings` in interface `TunnelManagerFacade`

    - #### shutdown

          public void shutdown()

      Description copied from interface: `Service`
      Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully. It should not depend on other components at this point. This call DOES block.
      Specified by:
        `shutdown` in interface `Service`

    - #### startup

          public void startup()

      Description copied from interface: `Service`
      Instruct the service that it should start normal operation. This call DOES block until the service is ready.
      Specified by:
        `startup` in interface `Service`