## Uses of Class
net.i2p.data.RouterInfo

- Packages that use RouterInfo
  Package | Description
  --- | ---
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.router | The I2P router application handles the I2P network communication.
  net.i2p.router.message |
  net.i2p.router.networkdb.kademlia |
  net.i2p.router.startup | The I2P startup package loads the configuration when I2P is started.
  net.i2p.router.transport | The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
  net.i2p.router.transport.ntcp | The NTCP transport allows passing I2P messages on top of TCP.
  net.i2p.router.transport.udp | The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
  net.i2p.router.tunnel |
  net.i2p.router.tunnel.pool |

- - ### Uses of RouterInfo in net.i2p.data

    Constructors in net.i2p.data with parameters of type RouterInfo
    Constructor and Description
    `RouterInfo(RouterInfo old)`

  - ### Uses of RouterInfo in net.i2p.router

    Methods in net.i2p.router that return RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `RouterInfo` | Router.`getRouterInfo()`
    `RouterInfo` | OutNetMessage.`getTarget()` Specifies the router to which the message should be delivered.
    `RouterInfo` | DummyNetworkDatabaseFacade.`lookupRouterInfoLocally(Hash key)`
    `abstract RouterInfo` | NetworkDatabaseFacade.`lookupRouterInfoLocally(Hash key)`
    `RouterInfo` | DummyNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)`
    `abstract RouterInfo` | NetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)` return the routerInfo if another router already existed at that key

    Methods in net.i2p.router that return types with arguments of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `Set<RouterInfo>` | NetworkDatabaseFacade.`getRouters()` public for NetDbRenderer in routerconsole

    Methods in net.i2p.router with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `void` | Router.`addCapabilities(RouterInfo ri)`
    `void` | DummyNetworkDatabaseFacade.`publish(RouterInfo localRouterInfo)`
    `abstract void` | NetworkDatabaseFacade.`publish(RouterInfo localRouterInfo)`
    `void` | Router.`setRouterInfo(RouterInfo info)` Caller must ensure info is valid - no validation done here
    `void` | OutNetMessage.`setTarget(RouterInfo target)`
    `RouterInfo` | DummyNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)`
    `abstract RouterInfo` | NetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)` return the routerInfo if another router already existed at that key

  - ### Uses of RouterInfo in net.i2p.router.message

    Methods in net.i2p.router.message that return RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `RouterInfo` | GarlicConfig.`getRecipient()`
    `RouterInfo` | GarlicConfig.`getReplyThroughRouter()`

    Methods in net.i2p.router.message with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `void` | GarlicConfig.`setRecipient(RouterInfo info)` Router to receive and process this clove - the router that will open the delivery instructions and decide what to do process it locally as an I2NPMessage, forward it as an I2NPMessage to a router, forward it as an I2NPMessage to a Destination, or forward it as an I2NPMessage to a tunnel.
    `void` | GarlicConfig.`setReplyThroughRouter(RouterInfo replyThroughRouter)` Specify the router through which a reply to this clove can be sent.

  - ### Uses of RouterInfo in net.i2p.router.networkdb.kademlia

    Methods in net.i2p.router.networkdb.kademlia that return RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `RouterInfo` | KademliaNetworkDatabaseFacade.`lookupRouterInfoLocally(Hash key)`
    `RouterInfo` | KademliaNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)` store the routerInfo
    `RouterInfo` | KademliaNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo, boolean persist)`

    Methods in net.i2p.router.networkdb.kademlia that return types with arguments of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `List<RouterInfo>` | FloodfillNetworkDatabaseFacade.`getKnownRouterData()`
    `Set<RouterInfo>` | KademliaNetworkDatabaseFacade.`getRouters()` public for NetDbRenderer in routerconsole

    Methods in net.i2p.router.networkdb.kademlia with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | KademliaNetworkDatabaseFacade.`dropAfterLookupFailed(Hash peer, RouterInfo info)`
    `static boolean` | FloodfillNetworkDatabaseFacade.`isFloodfill(RouterInfo peer)`
    `protected void` | FloodfillNetworkDatabaseFacade.`lookupBeforeDropping(Hash peer, RouterInfo info)` Search for a newer router info, drop it from the db if the search fails, unless just started up or have bigger problems.
    `protected void` | KademliaNetworkDatabaseFacade.`lookupBeforeDropping(Hash peer, RouterInfo info)` don't use directly - see F.N.D.F.
    `void` | FloodfillNetworkDatabaseFacade.`publish(RouterInfo localRouterInfo)`
    `void` | KademliaNetworkDatabaseFacade.`publish(RouterInfo localRouterInfo)` Stores to local db only.
    `protected void` | SearchJob.`sendLeaseSearch(RouterInfo router)` we're (probably) searching for a LeaseSet, so to be (overly) cautious, we're sending the request out through a tunnel w/ reply back through another tunnel.
    `protected void` | SearchJob.`sendSearch(RouterInfo router)` Send a search to the given peer
    `RouterInfo` | KademliaNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo)` store the routerInfo
    `RouterInfo` | KademliaNetworkDatabaseFacade.`store(Hash key, RouterInfo routerInfo, boolean persist)`
    `(package private) String` | KademliaNetworkDatabaseFacade.`validate(Hash key, RouterInfo routerInfo)` Determine whether this routerInfo will be accepted as valid and current given what we know now.
    `(package private) static MessageWrapper.WrappedMessage` | MessageWrapper.`wrap(RouterContext ctx, I2NPMessage m, Hash from, RouterInfo to)` Garlic wrap a message from a client or this router, destined for a router, to hide the contents from the OBEP.

    Constructors in net.i2p.router.networkdb.kademlia with parameters of type RouterInfo
    Constructor and Description
    `SearchJob.FailedJob(RouterContext enclosingContext, RouterInfo peer)`
    `SearchJob.FailedJob(RouterContext enclosingContext, RouterInfo peer, boolean penalizePeer)` Allow the choice as to whether failed searches should count against the peer (such as if we search for a random key)
    `SearchMessageSelector(RouterContext context, RouterInfo peer, long expiration, SearchState state)`
    `SearchUpdateReplyFoundJob(RouterContext context, RouterInfo peer, SearchState state, KademliaNetworkDatabaseFacade facade, SearchJob job)`
    `SearchUpdateReplyFoundJob(RouterContext context, RouterInfo peer, SearchState state, KademliaNetworkDatabaseFacade facade, SearchJob job, TunnelInfo outTunnel, TunnelInfo replyTunnel)`
    `StoreMessageSelector(RouterContext ctx, long storeJobId, RouterInfo peer, long waitingForId, long expiration)`

  - ### Uses of RouterInfo in net.i2p.router.startup

    Methods in net.i2p.router.startup that return RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `(package private) RouterInfo` | CreateRouterInfoJob.`createRouterInfo()` Caller must hold Router.routerInfoFileLock

  - ### Uses of RouterInfo in net.i2p.router.transport

    Methods in net.i2p.router.transport that return RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `RouterInfo` | TransportBid.`getRouter()` Router to which the message is to be sent

    Methods in net.i2p.router.transport with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `TransportBid` | Transport.`bid(RouterInfo toAddress, long dataSize)`
    `void` | TransportBid.`setRouter(RouterInfo router)`

  - ### Uses of RouterInfo in net.i2p.router.transport.ntcp

    Methods in net.i2p.router.transport.ntcp with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `TransportBid` | NTCPTransport.`bid(RouterInfo toAddress, long dataSize)`

  - ### Uses of RouterInfo in net.i2p.router.transport.udp

    Methods in net.i2p.router.transport.udp with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `TransportBid` | UDPTransport.`bid(RouterInfo toAddress, long dataSize)`

  - ### Uses of RouterInfo in net.i2p.router.tunnel

    Methods in net.i2p.router.tunnel with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `void` | OutboundMessageDistributor.`distribute(I2NPMessage msg, RouterInfo target, TunnelId tunnel)`

  - ### Uses of RouterInfo in net.i2p.router.tunnel.pool

    Methods in net.i2p.router.tunnel.pool with parameters of type RouterInfo
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | TunnelPeerSelector.`shouldExclude(RouterContext ctx, RouterInfo peer)` warning, this is also called by ProfileOrganizer.isSelectable()