## Uses of Class
net.i2p.client.streaming.impl.Connection

- Packages that use Connection
  Package | Description
  --- | ---
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.

- - ### Uses of Connection in net.i2p.client.streaming.impl

    Methods in net.i2p.client.streaming.impl that return Connection
    Modifier and Type | Method and Description
    --- | ---
    `Connection` | ConnectionHandler.`accept(long timeoutMs)` Receive an incoming connection (built from a received SYN) Non-SYN packets with a zero SendStreamID may also be queued here so that they don't get thrown away while the SYN packet before it is queued.
    `Connection` | ConnectionManager.`connect(Destination peer, ConnectionOptions opts, I2PSession session)` Build a new connection to the given peer.
    `Connection` | PacketLocal.`getConnection()`
    `(package private) Connection` | I2PSocketFull.`getConnection()`
    `(package private) Connection` | ConnectionManager.`getConnectionByInboundId(long id)`
    `(package private) Connection` | ConnectionManager.`getConnectionByOutboundId(long id)` not guaranteed to be unique, but in case we receive more than one packet on an inbound connection that we havent ack'ed yet...
    `Connection` | ConnectionManager.`receiveConnection(Packet synPacket)` Create a new connection based on the SYN packet we received.

    Methods in net.i2p.client.streaming.impl that return types with arguments of type Connection
    Modifier and Type | Method and Description
    --- | ---
    `Set<Connection>` | ConnectionManager.`listConnections()` return a set of Connection objects

    Methods in net.i2p.client.streaming.impl with parameters of type Connection
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | SchedulerConnectedBulk.`accept(Connection con)`
    `boolean` | SchedulerClosing.`accept(Connection con)`
    `boolean` | SchedulerConnecting.`accept(Connection con)`
    `boolean` | SchedulerHardDisconnected.`accept(Connection con)`
    `boolean` | SchedulerClosed.`accept(Connection con)`
    `boolean` | TaskScheduler.`accept(Connection con)` Determine whether this scheduler is fit to operate against the given connection
    `boolean` | SchedulerDead.`accept(Connection con)`
    `boolean` | SchedulerPreconnect.`accept(Connection con)`
    `boolean` | SchedulerReceived.`accept(Connection con)`
    `void` | SchedulerConnectedBulk.`eventOccurred(Connection con)`
    `void` | SchedulerClosing.`eventOccurred(Connection con)`
    `void` | SchedulerConnecting.`eventOccurred(Connection con)`
    `void` | SchedulerHardDisconnected.`eventOccurred(Connection con)`
    `void` | SchedulerClosed.`eventOccurred(Connection con)`
    `void` | TaskScheduler.`eventOccurred(Connection con)` An event has occurred (timeout, message sent, or message received), so schedule what to do next based on our current state.
    `void` | SchedulerDead.`eventOccurred(Connection con)`
    `void` | SchedulerPreconnect.`eventOccurred(Connection con)`
    `void` | SchedulerReceived.`eventOccurred(Connection con)`
    `TaskScheduler` | SchedulerChooser.`getScheduler(Connection con)`
    `void` | Packet.`logTCPDump(Connection con)` Generate a pcap/tcpdump-compatible format, so we can use standard debugging tools.
    `(package private) void` | ConnectionPacketHandler.`receivePacket(Packet packet, Connection con)` Takes ownership of the packet and call packet.releasePayload() unless it is passed to the MessageInputStream.
    `boolean` | ConnectionManager.`receivePing(Connection con, Packet ping)` Process a ping by checking for throttling, etc., then sending a pong.
    `void` | ConnectionManager.`removeConnection(Connection con)` Drop the (already closed) connection on the floor.
    `protected void` | SchedulerImpl.`reschedule(long msToWait, Connection con)`
    `void` | TCBShare.`updateOptsFromShare(Connection con)` retrieve from cache
    `void` | ConnectionManager.`updateOptsFromShare(Connection con)`
    `void` | TCBShare.`updateShareOpts(Connection con)` store to cache
    `void` | ConnectionManager.`updateShareOpts(Connection con)`
    `void` | PcapWriter.`write(Packet pkt, Connection con)` For inbound packets

    Constructors in net.i2p.client.streaming.impl with parameters of type Connection
    Constructor and Description
    `ConnectionDataReceiver(I2PAppContext ctx, Connection con)`
    `I2PSocketFull(Connection con, I2PAppContext context)`
    `PacketLocal(I2PAppContext ctx, Destination to, Connection con)` bound to a connection