## net.i2p.router.transport.udp
Class IntroductionManager

    java.lang.Object
      net.i2p.router.transport.udp.IntroductionManager

     class IntroductionManager

extends Object

Constructor Summary
`IntroductionManager(RouterContext ctx, UDPTransport transport)`

Method Summary
`void` `add(PeerState peer)`
`PeerState` `get(long id)`
`(package private) int` `introducerCount()` Not as elaborate as pickInbound() above.
`int` `pickInbound(Properties ssuOptions, int howMany)` Grab a bunch of peers who are willing to be introducers for us that are locally known (duh) and have published their own SSU address (duh^2).
`(package private) void` `receiveRelayIntro(RemoteHostId bob, UDPPacketReader reader)`
`(package private) void` `receiveRelayRequest(RemoteHostId alice, UDPPacketReader reader)`
`void` `remove(PeerState peer)`
`void` `reset()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### IntroductionManager

    public IntroductionManager(RouterContext ctx,
                               UDPTransport transport)

Method Detail

### reset

    public void reset()

### add

    public void add(PeerState peer)

### remove

    public void remove(PeerState peer)

### get

    public PeerState get(long id)

### pickInbound

    public int pickInbound(Properties ssuOptions,
                           int howMany)

  Grab a bunch of peers who are willing to be introducers for us that are locally known (duh) and have published their own SSU address (duh^2). The picked peers have their info tacked on to the ssuOptions parameter for use in the SSU RouterAddress. Try to use "good" peers (i.e. reachable, active) Also, ping all idle peers that were introducers in the last 2 hours, to keep the connection up, since the netDb can have quite stale information, and we want to keep our introducers valid.

### introducerCount

    int introducerCount()

  Not as elaborate as pickInbound() above. Just a quick check to see how many volunteers we know, which the Transport uses to see if we need more.

  Returns:
    number of peers that have volunteered to introduce us

### receiveRelayIntro

    void receiveRelayIntro(RemoteHostId bob,
                           UDPPacketReader reader)

### receiveRelayRequest

    void receiveRelayRequest(RemoteHostId alice,
                             UDPPacketReader reader)