## Uses of Interface
net.i2p.router.TunnelInfo

Packages that use TunnelInfo
net.i2p.router: The I2P router application handles the I2P network communication.
net.i2p.router.message
net.i2p.router.networkdb.kademlia
net.i2p.router.tunnel
net.i2p.router.tunnel.pool

Uses of TunnelInfo in net.i2p.router

Methods in net.i2p.router that return TunnelInfo
`TunnelInfo` `TunnelManagerFacade.getTunnelInfo(TunnelId id)` Retrieve the information related to a particular tunnel
`TunnelInfo` `DummyTunnelManagerFacade.getTunnelInfo(TunnelId id)`
`TunnelInfo` `TunnelManagerFacade.selectInboundTunnel()` pick an inbound tunnel not bound to a particular destination
`TunnelInfo` `DummyTunnelManagerFacade.selectInboundTunnel()`
`TunnelInfo` `TunnelManagerFacade.selectInboundTunnel(Hash destination)` pick an inbound tunnel bound to the given destination
`TunnelInfo` `DummyTunnelManagerFacade.selectInboundTunnel(Hash destination)`
`TunnelInfo` `TunnelManagerFacade.selectOutboundTunnel()` pick an outbound tunnel not bound to a particular destination
`TunnelInfo` `DummyTunnelManagerFacade.selectOutboundTunnel()`
`TunnelInfo` `TunnelManagerFacade.selectOutboundTunnel(Hash destination)` pick an outbound tunnel bound to the given destination
`TunnelInfo` `DummyTunnelManagerFacade.selectOutboundTunnel(Hash destination)`

Methods in net.i2p.router with parameters of type TunnelInfo
`boolean` `TunnelManagerFacade.isValidTunnel(Hash client, TunnelInfo tunnel)` Is a tunnel a valid member of the pool?
`boolean` `DummyTunnelManagerFacade.isValidTunnel(Hash client, TunnelInfo tunnel)`
`void` `MessageHistory.tunnelJoined(String state, TunnelInfo tunnel)` The local router has joined the given tunnel operating in the given state.
`void` `MessageHistory.tunnelValid(TunnelInfo tunnel, long timeToTest)` Note that we have reason to believe that the given tunnel is valid, since we could do something through it in the given amount of time

Uses of TunnelInfo in net.i2p.router.message

Methods in net.i2p.router.message with parameters of type TunnelInfo

`(package private) static GarlicMessage`

`OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, PayloadGarlicConfig dataClove, Hash from, Destination dest, TunnelInfo replyTunnel, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)`
Allow the app to specify the data clove directly, which enables OutboundClientMessage to resend the same payload (including expiration and unique id) in different garlics (down different tunnels) This is called from OCMOSJ

`(package private) static GarlicMessage`

`OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx, long replyToken, long expiration, PublicKey recipientPK, Payload data, Hash from, Destination dest, TunnelInfo replyTunnel, SessionKey wrappedKey, Set<SessionTag> wrappedTags, boolean requireAck, LeaseSet bundledReplyLeaseSet)`
Build a garlic message that will be delivered to the router on which the target is located.

Uses of TunnelInfo in net.i2p.router.networkdb.kademlia

Constructors in net.i2p.router.networkdb.kademlia with parameters of type TunnelInfo
`SearchUpdateReplyFoundJob(RouterContext context, RouterInfo peer, SearchState state, KademliaNetworkDatabaseFacade facade, SearchJob job, TunnelInfo outTunnel, TunnelInfo replyTunnel)`

Uses of TunnelInfo in net.i2p.router.tunnel

Classes in net.i2p.router.tunnel that implement TunnelInfo
`class` `TunnelCreatorConfig` Coordinate the info that the tunnel creator keeps track of, including what peers are in the tunnel and what their configuration is

Uses of TunnelInfo in net.i2p.router.tunnel.pool

Classes in net.i2p.router.tunnel.pool that implement TunnelInfo
`(package private) class` `PooledTunnelCreatorConfig`

Methods in net.i2p.router.tunnel.pool that return TunnelInfo
`TunnelInfo` `TunnelPool.getTunnel(TunnelId gatewayId)`
`TunnelInfo` `TunnelPoolManager.getTunnelInfo(TunnelId id)`
`TunnelInfo` `TunnelPoolManager.selectInboundTunnel()` pick an inbound tunnel not bound to a particular destination
`TunnelInfo` `TunnelPoolManager.selectInboundTunnel(Hash destination)` pick an inbound tunnel bound to the given destination
`TunnelInfo` `TunnelPoolManager.selectOutboundTunnel()` pick an outbound tunnel not bound to a particular destination
`TunnelInfo` `TunnelPoolManager.selectOutboundTunnel(Hash destination)` pick an outbound tunnel bound to the given destination
`TunnelInfo` `TunnelPool.selectTunnel()` Pull a random tunnel out of the pool.

Methods in net.i2p.router.tunnel.pool that return types with arguments of type TunnelInfo
`List<TunnelInfo>` `TunnelPool.listTunnels()` Return a list of tunnels in the pool

Methods in net.i2p.router.tunnel.pool with parameters of type TunnelInfo
`(package private) void` `TunnelPool.addTunnel(TunnelInfo info)` Add to the pool.
`boolean` `TunnelPoolManager.isValidTunnel(Hash client, TunnelInfo tunnel)`
`(package private) void` `TunnelPool.removeTunnel(TunnelInfo info)` Remove from the pool.
`void` `PooledTunnelCreatorConfig.setPairedTunnel(TunnelInfo tunnel)` Deprecated. Fix memory leaks caused by references if you need to use pairedTunnel