## Uses of Class
net.i2p.client.I2PSessionImpl

Packages that use I2PSessionImpl
net.i2p.client: Implements the base I2P SDK for developing applications that communicate through I2P.

Uses of I2PSessionImpl in net.i2p.client

Subclasses of I2PSessionImpl in net.i2p.client
`(package private) class` `I2PSessionImpl2` Thread safe implementation of an I2P session running over TCP.
`(package private) class` `I2PSessionMuxedImpl` I2PSession with protocol and ports Streaming lib has been modified to send I2PSession.PROTO_STREAMING but still receives all.
`(package private) class` `I2PSimpleSession` Create a new session for doing naming and bandwidth queries only.

Methods in net.i2p.client with parameters of type I2PSessionImpl
`void` `I2CPMessageProducer.connect(I2PSessionImpl session)` Send all the messages that a client needs to send to a router to establish a new session.
`void` `I2CPMessageProducer.createLeaseSet(I2PSessionImpl session, LeaseSet leaseSet, SigningPrivateKey signingPriv, PrivateKey priv)` Create a new signed leaseSet in response to a request to do so and send it to the router
`void` `I2CPMessageProducer.disconnect(I2PSessionImpl session)` Send messages to the router destroying the session and disconnecting
`void` `MessagePayloadMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `DisconnectMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `BWLimitsMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `DestReplyMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `RequestLeaseSetMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `SetDateMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `I2CPMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `SessionStatusMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `MessageStatusMessageHandler.handleMessage(I2CPMessage message, I2PSessionImpl session)`
`void` `I2CPMessageProducer.reportAbuse(I2PSessionImpl session, int msgId, int severity)` Send an abuse message to the router
`void` `I2CPMessageProducer.sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, long expires, int flags)` Package up and send the payload to the router for delivery
`void` `I2CPMessageProducer.sendMessage(I2PSessionImpl session, Destination dest, long nonce, byte[] payload, SessionTag tag, SessionKey key, Set tags, SessionKey newKey, long expires)` Package up and send the payload to the router for delivery
`void` `I2CPMessageProducer.updateBandwidth(I2PSessionImpl session)` Update the bandwidth setting
`void` `I2CPMessageProducer.updateTunnels(I2PSessionImpl session, int tunnels)` Update number of tunnels

Constructors in net.i2p.client with parameters of type I2PSessionImpl
`ClientWriterRunner(OutputStream out, I2PSessionImpl session)` starts the thread too
`SessionIdleTimer(I2PAppContext context, I2PSessionImpl session, boolean reduce, boolean shutdown)` reduce, shutdown, or both must be true