## Uses of Class
net.i2p.I2PAppContext

Packages that use I2PAppContext
net.i2p
net.i2p.client: Implements the base I2P SDK for developing applications that communicate through I2P.
net.i2p.client.naming: Provides a standard way for querying the local naming service to resolve a name into a `Destination` (without the complexity of JNDI).
net.i2p.client.streaming: Implements a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
net.i2p.crypto
net.i2p.data
net.i2p.data.i2np
net.i2p.i2ptunnel
net.i2p.i2ptunnel.web
net.i2p.router
net.i2p.router.networkdb.kademlia
net.i2p.router.transport
net.i2p.router.transport.udp
net.i2p.router.tunnel
net.i2p.router.web
net.i2p.stat
net.i2p.time
net.i2p.util

Uses of I2PAppContext in net.i2p

Fields in net.i2p declared as I2PAppContext
`protected static I2PAppContext` `I2PAppContext._globalAppContext` the context that components without explicit root are bound

Methods in net.i2p that return I2PAppContext
`static I2PAppContext` `I2PAppContext.getGlobalContext()` Pull the default context, creating a new one if necessary, else using the first one created.

Uses of I2PAppContext in net.i2p.client

Fields in net.i2p.client declared as I2PAppContext
`protected I2PAppContext` `I2PSessionImpl._context` used to seperate things out so we can get rid of singletons
`protected I2PAppContext` `HandlerImpl._context`

Methods in net.i2p.client with parameters of type I2PAppContext
`I2PSession` `I2PClientImpl.createSession(I2PAppContext context, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session (though do not connect it yet)

Constructors in net.i2p.client with parameters of type I2PAppContext
`DisconnectMessageHandler(I2PAppContext context)`
`HandlerImpl(I2PAppContext context, int type)`
`I2CPMessageProducer(I2PAppContext context)`
`I2PClientMessageHandlerMap(I2PAppContext context)`
`I2PSessionImpl(I2PAppContext context, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router
`I2PSessionImpl2(I2PAppContext ctx, java.io.InputStream destKeyStream, java.util.Properties options)` Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router
`MessagePayloadMessageHandler(I2PAppContext context)`
`MessageState(I2PAppContext ctx, long nonce, java.lang.String prefix)`
`MessageStatusMessageHandler(I2PAppContext context)`
`RequestLeaseSetMessageHandler(I2PAppContext context)`
`SessionStatusMessageHandler(I2PAppContext context)`
`SetDateMessageHandler(I2PAppContext ctx)`

Uses of I2PAppContext in net.i2p.client.naming

Fields in net.i2p.client.naming declared as I2PAppContext
`protected I2PAppContext` `NamingService._context`
`protected I2PAppContext` `AddressDB._context`

Methods in net.i2p.client.naming with parameters of type I2PAppContext
`static NamingService` `NamingService.createInstance(I2PAppContext context)` Get a naming service instance.
`static AddressDB` `AddressDB.createInstance(I2PAppContext context)` Get an address db instance.

Constructors in net.i2p.client.naming with parameters of type I2PAppContext
`AddressDB(I2PAppContext context)` The address db should only be constructed and accessed through the application context.
`AddressDBNamingService(I2PAppContext context)`
`DummyAddressDB(I2PAppContext context)`
`DummyNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
`FilesystemAddressDB(I2PAppContext context)`
`HostsTxtNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
`MetaNamingService(I2PAppContext context)`
`NamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
`PetNameNamingService(I2PAppContext context)`

Uses of I2PAppContext in net.i2p.client.streaming

Fields in net.i2p.client.streaming declared as I2PAppContext
`protected I2PAppContext` `SchedulerImpl._context`

Methods in net.i2p.client.streaming with parameters of type I2PAppContext
`void` `I2PSocketManagerFull.init(I2PAppContext context, I2PSession session, java.util.Properties opts, java.lang.String name)`
`void` `I2PSocketManagerImpl.init(I2PAppContext context, I2PSession session, java.util.Properties opts, java.lang.String name)`
`void` `I2PSocketManager.init(I2PAppContext context, I2PSession session, java.util.Properties opts, java.lang.String name)`
`boolean` `Packet.verifySignature(I2PAppContext ctx, Destination from, byte[] buffer)` Determine whether the signature on the data is valid.
`int` `Packet.writeSignedPacket(byte[] buffer, int offset, I2PAppContext ctx, SigningPrivateKey key)` Sign and write the packet to the buffer (starting at the offset) and return the number of bytes written.

Constructors in net.i2p.client.streaming with parameters of type I2PAppContext
`Connection(I2PAppContext ctx, ConnectionManager manager, SchedulerChooser chooser, PacketQueue queue, ConnectionPacketHandler handler)`
`Connection(I2PAppContext ctx, ConnectionManager manager, SchedulerChooser chooser, PacketQueue queue, ConnectionPacketHandler handler, ConnectionOptions opts)`
`ConnectionDataReceiver(I2PAppContext ctx, Connection con)`
`ConnectionHandler(I2PAppContext context, ConnectionManager mgr)` Creates a new instance of ConnectionHandler
`ConnectionManager(I2PAppContext context, I2PSession session, int maxConcurrent, ConnectionOptions defaultOptions)`
`ConnectionPacketHandler(I2PAppContext context)`
`I2PSocketManagerFull(I2PAppContext context, I2PSession session, java.util.Properties opts, java.lang.String name)`
`MessageHandler(I2PAppContext ctx, ConnectionManager mgr)`
`MessageInputStream(I2PAppContext ctx)`
`MessageOutputStream(I2PAppContext ctx, MessageOutputStream.DataReceiver receiver)`
`MessageOutputStream(I2PAppContext ctx, MessageOutputStream.DataReceiver receiver, int bufSize)`
`PacketHandler(I2PAppContext ctx, ConnectionManager mgr)`
`PacketLocal(I2PAppContext ctx, Destination to)`
`PacketLocal(I2PAppContext ctx, Destination to, Connection con)`
`PacketQueue(I2PAppContext context, I2PSession session, ConnectionManager mgr)`
`SchedulerChooser(I2PAppContext context)`
`SchedulerClosed(I2PAppContext ctx)`
`SchedulerClosing(I2PAppContext ctx)`
`SchedulerConnectedBulk(I2PAppContext ctx)`
`SchedulerConnecting(I2PAppContext ctx)`
`SchedulerDead(I2PAppContext ctx)`
`SchedulerHardDisconnected(I2PAppContext ctx)`
`SchedulerImpl(I2PAppContext ctx)`
`SchedulerPreconnect(I2PAppContext ctx)`
`SchedulerReceived(I2PAppContext ctx)`
`TestSwarm(I2PAppContext ctx, java.lang.String destFile, java.lang.String[] peerDestFiles)`

Uses of I2PAppContext in net.i2p.crypto

Fields in net.i2p.crypto declared as I2PAppContext
`protected I2PAppContext` `TransientSessionKeyManager._context`

Methods in net.i2p.crypto with parameters of type I2PAppContext
`(package private) static byte[]` `ElGamalAESEngine.getPadding(I2PAppContext context, int curSize, long minPaddedSize)` Return random bytes for padding the data to a mod 16 size so that it is at least minPaddedSize
`protected void` `DummyPooledRandomSource.initializePool(I2PAppContext context)`

Constructors in net.i2p.crypto with parameters of type I2PAppContext
`AESEngine(I2PAppContext ctx)`
`AESInputStream(I2PAppContext context, java.io.InputStream source, SessionKey key, byte[] iv)`
`AESOutputStream(I2PAppContext context, java.io.OutputStream source, SessionKey key, byte[] iv)`
`CryptixAESEngine(I2PAppContext context)`
`DSAEngine(I2PAppContext context)`
`DummyDSAEngine(I2PAppContext context)`
`DummyElGamalEngine(I2PAppContext context)` The ElGamal engine should only be constructed and accessed through the application context.
`DummyPooledRandomSource(I2PAppContext context)`
`ElGamalAESEngine(I2PAppContext ctx)`
`ElGamalEngine(I2PAppContext context)` The ElGamal engine should only be constructed and accessed through the application context.
`HMAC256Generator(I2PAppContext context)`
`HMACGenerator(I2PAppContext context)`
`KeyGenerator(I2PAppContext context)`
`PersistentSessionKeyManager(I2PAppContext context)` The session key manager should only be constructed and accessed through the application context.
`SessionKeyManager(I2PAppContext context)` session key managers must be created through an app context
`SHA256Generator(I2PAppContext context)`
`TransientSessionKeyManager(I2PAppContext context)` The session key manager should only be constructed and accessed through the application context.
`TrustedUpdate(I2PAppContext context)` Constructs a new `TrustedUpdate` with the given `I2PAppContext`.

Uses of I2PAppContext in net.i2p.data

Constructors in net.i2p.data with parameters of type I2PAppContext
`RoutingKeyGenerator(I2PAppContext context)`

Uses of I2PAppContext in net.i2p.data.i2np

Fields in net.i2p.data.i2np declared as I2PAppContext
`protected I2PAppContext` `I2NPMessageImpl._context`

Methods in net.i2p.data.i2np with parameters of type I2PAppContext
`I2NPMessage` `I2NPMessageImpl.Builder.build(I2PAppContext ctx)` instantiate a new I2NPMessage to be populated shortly
`byte[]` `BuildResponseRecord.create(I2PAppContext ctx, int status, SessionKey replyKey, byte[] replyIV, long responseMessageId)` Create a new encrypted response
`static I2NPMessage` `I2NPMessageImpl.createMessage(I2PAppContext context, int type)` Yes, this is fairly ugly, but its the only place it ever happens.
`void` `BuildRequestRecord.createRecord(I2PAppContext ctx, long receiveTunnelId, Hash peer, long nextTunnelId, Hash nextHop, long nextMsgId, SessionKey layerKey, SessionKey ivKey, SessionKey replyKey, byte[] iv, boolean isInGateway, boolean isOutEndpoint)` Populate this instance with data.
`boolean` `BuildRequestRecord.decryptRecord(I2PAppContext ctx, PrivateKey ourKey, Hash ourIdent, ByteArray encryptedRecord)` Decrypt the data from the specified record, writing the decrypted record into this instance's buffer (but not overwriting the array contained within the old buffer)
`void` `BuildRequestRecord.encryptRecord(I2PAppContext ctx, PublicKey toKey, Hash toPeer, byte[] out, int outOffset)` Encrypt the record to the specified peer.
`static I2NPMessage` `I2NPMessageImpl.fromRawByteArray(I2PAppContext ctx, byte[] buffer, int offset, int len)`
`static I2NPMessage` `I2NPMessageImpl.fromRawByteArray(I2PAppContext ctx, byte[] buffer, int offset, int len, I2NPMessageHandler handler)`

Constructors in net.i2p.data.i2np with parameters of type I2PAppContext
`DatabaseLookupMessage(I2PAppContext context)`
`DatabaseLookupMessage(I2PAppContext context, boolean locallyCreated)`
`DatabaseSearchReplyMessage(I2PAppContext context)`
`DatabaseStoreMessage(I2PAppContext context)`
`DataMessage(I2PAppContext context)`
`DateMessage(I2PAppContext context)`
`DeliveryStatusMessage(I2PAppContext context)`
`GarlicMessage(I2PAppContext context)`
`I2NPMessageHandler(I2PAppContext context)`
`I2NPMessageImpl(I2PAppContext context)`
`TunnelBuildMessage(I2PAppContext context)`
`TunnelBuildReplyMessage(I2PAppContext context)`
`TunnelCreateMessage(I2PAppContext context)`
`TunnelCreateStatusMessage(I2PAppContext context)`
`TunnelDataMessage(I2PAppContext context)`
`TunnelGatewayMessage(I2PAppContext context)`

Uses of I2PAppContext in net.i2p.i2ptunnel

Fields in net.i2p.i2ptunnel declared as I2PAppContext
`protected I2PAppContext` `I2PTunnelClientBase._context`

Methods in net.i2p.i2ptunnel that return I2PAppContext
`I2PAppContext` `I2PTunnel.getContext()`

Uses of I2PAppContext in net.i2p.i2ptunnel.web

Fields in net.i2p.i2ptunnel.web declared as I2PAppContext
`protected I2PAppContext` `IndexBean._context`

Uses of I2PAppContext in net.i2p.router

Subclasses of I2PAppContext in net.i2p.router
`class` `RouterContext` Build off the core I2P context to provide a root for a router instance to coordinate its resources.

Methods in net.i2p.router with parameters of type I2PAppContext
`static boolean` `LoadTestManager.isEnabled(I2PAppContext ctx)`

Constructors in net.i2p.router with parameters of type I2PAppContext
`SSUDemo.FooMessage(I2PAppContext ctx, byte[] data)`
`TunnelSettings(I2PAppContext context)`

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

Constructors in net.i2p.router.networkdb.kademlia with parameters of type I2PAppContext
`KBucketImpl(I2PAppContext context, Hash local)`
`KBucketSet(I2PAppContext context, Hash us)`

Uses of I2PAppContext in net.i2p.router.transport

Constructors in net.i2p.router.transport with parameters of type I2PAppContext
`FIFOBandwidthLimiter(I2PAppContext context)`
`FIFOBandwidthRefiller(I2PAppContext context, FIFOBandwidthLimiter limiter)`

Uses of I2PAppContext in net.i2p.router.transport.udp

Methods in net.i2p.router.transport.udp with parameters of type I2PAppContext
`static UDPPacket` `UDPPacket.acquire(I2PAppContext ctx, boolean inbound)`

Constructors in net.i2p.router.transport.udp with parameters of type I2PAppContext
`OutboundMessageState(I2PAppContext context)`
`PacketBuilder(I2PAppContext ctx, UDPTransport transport)`
`UDPPacketReader(I2PAppContext ctx)`

Uses of I2PAppContext in net.i2p.router.tunnel

Fields in net.i2p.router.tunnel declared as I2PAppContext
`protected I2PAppContext` `TunnelGateway._context`
`protected I2PAppContext` `TrivialPreprocessor._context`
`protected I2PAppContext` `HopProcessor._context`

Methods in net.i2p.router.tunnel with parameters of type I2PAppContext
`void` `BuildMessageGenerator.createRecord(int recordNum, int hop, TunnelBuildMessage msg, TunnelCreatorConfig cfg, Hash replyRouter, long replyTunnel, I2PAppContext ctx, PublicKey peerKey)` Place the asymmetrically encrypted record in the specified record slot, containing the hop's configuration (as well as the reply info, if it is an outbound endpoint)
`(package private) static void` `OutboundGatewayProcessor.decrypt(I2PAppContext ctx, byte[] iv, byte[] orig, int offset, int length, byte[] cur, HopConfig config)`
`BuildRequestRecord` `BuildMessageProcessor.decrypt(I2PAppContext ctx, TunnelBuildMessage msg, Hash ourHash, PrivateKey privKey)` Decrypt the record targetting us, encrypting all of the other records with the included reply key and IV.
`int[]` `BuildReplyHandler.decrypt(I2PAppContext ctx, TunnelBuildReplyMessage reply, TunnelCreatorConfig cfg, java.util.List recordOrder)` Decrypt the tunnel build reply records.
`void` `BuildMessageGenerator.layeredEncrypt(I2PAppContext ctx, TunnelBuildMessage msg, TunnelCreatorConfig cfg, java.util.List order)` Encrypt the records so their hop ident is visible at the appropriate times

Constructors in net.i2p.router.tunnel with parameters of type I2PAppContext
`BatchedPreprocessor(I2PAppContext ctx, java.lang.String name)`
`BloomFilterIVValidator(I2PAppContext ctx, int KBps)`
`BuildMessageProcessor(I2PAppContext ctx)`
`FragmentedMessage(I2PAppContext ctx)`
`FragmentHandler(I2PAppContext context, FragmentHandler.DefragmentedReceiver receiver)`
`HopProcessor(I2PAppContext ctx, HopConfig config)`
`HopProcessor(I2PAppContext ctx, HopConfig config, IVValidator validator)`
`InboundEndpointProcessor(I2PAppContext ctx, TunnelCreatorConfig cfg)`
`InboundEndpointProcessor(I2PAppContext ctx, TunnelCreatorConfig cfg, IVValidator validator)`
`InboundGatewayProcessor(I2PAppContext ctx, HopConfig config)`
`InboundSender(I2PAppContext ctx, HopConfig config)`
`OutboundGatewayProcessor(I2PAppContext ctx, TunnelCreatorConfig cfg)`
`OutboundSender(I2PAppContext ctx, TunnelCreatorConfig config)`
`PumpedTunnelGateway(I2PAppContext context, TunnelGateway.QueuePreprocessor preprocessor, TunnelGateway.Sender sender, TunnelGateway.Receiver receiver, TunnelGatewayPumper pumper)`
`TrivialPreprocessor(I2PAppContext ctx)`
`TunnelGateway(I2PAppContext context, TunnelGateway.QueuePreprocessor preprocessor, TunnelGateway.Sender sender, TunnelGateway.Receiver receiver)`

Uses of I2PAppContext in net.i2p.router.web

Methods in net.i2p.router.web with parameters of type I2PAppContext
`(package private) static java.lang.String` `SummaryListener.createName(I2PAppContext ctx, java.lang.String wanted)` JRobin can only deal with 20 character data source names, so we need to create a unique, munged version from the user/developer-visible name.
`static NewsFetcher` `NewsFetcher.getInstance(I2PAppContext ctx)`
`static void` `SummaryRenderer.render(I2PAppContext ctx, java.io.OutputStream out, java.lang.String filename)` Render the stats as determined by the specified JRobin xml config, but note that this doesn't work on stock jvms, as it requires DOM level 3 load and store support.

Constructors in net.i2p.router.web with parameters of type I2PAppContext
`SummaryRenderer(I2PAppContext ctx, SummaryListener lsnr)`

Uses of I2PAppContext in net.i2p.stat

Methods in net.i2p.stat with parameters of type I2PAppContext
`static void` `SimpleStatDumper.dumpStats(I2PAppContext context, int logLevel)`

Constructors in net.i2p.stat with parameters of type I2PAppContext
`BufferedStatLog(I2PAppContext ctx)`
`StatManager(I2PAppContext context)` The stat manager should only be constructed and accessed through the application context.

Uses of I2PAppContext in net.i2p.time

Constructors in net.i2p.time with parameters of type I2PAppContext
`Timestamper(I2PAppContext ctx)`
`Timestamper(I2PAppContext ctx, Timestamper.UpdateListener lsnr)`
`Timestamper(I2PAppContext ctx, Timestamper.UpdateListener lsnr, boolean daemon)`

Uses of I2PAppContext in net.i2p.util

Fields in net.i2p.util declared as I2PAppContext
`protected I2PAppContext` `RandomSource._context`
`protected I2PAppContext` `Clock._context`

Methods in net.i2p.util with parameters of type I2PAppContext
`protected void` `PooledRandomSource.initializePool(I2PAppContext context)`

Constructors in net.i2p.util with parameters of type I2PAppContext
`BufferedRandomSource(I2PAppContext context)`
`BufferedRandomSource(I2PAppContext context, int bufferSize)`
`Clock(I2PAppContext context)`
`DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes)` Create a bloom filter that will decay its entries over time.
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, java.lang.String outputFile, java.io.OutputStream outputStream, java.lang.String url, boolean allowCaching, java.lang.String etag, java.lang.String postData)`
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, java.lang.String outputFile, java.io.OutputStream outputStream, java.lang.String url, boolean allowCaching, java.lang.String etag, java.lang.String lastModified, java.lang.String postData)`
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url)`
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url, boolean allowCaching, java.lang.String etag)`
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url, boolean allowCaching, java.lang.String etag, java.lang.String lastModified)`
`EepGet(I2PAppContext ctx, boolean shouldProxy, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url, java.lang.String postData)`
`EepGet(I2PAppContext ctx, int numRetries, java.lang.String outputFile, java.lang.String url)`
`EepGet(I2PAppContext ctx, int numRetries, java.lang.String outputFile, java.lang.String url, boolean allowCaching)`
`EepGet(I2PAppContext ctx, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url)`
`EepGet(I2PAppContext ctx, java.lang.String proxyHost, int proxyPort, int numRetries, java.lang.String outputFile, java.lang.String url, boolean allowCaching)`
`EepGetScheduler(I2PAppContext ctx, java.util.List urls, java.util.List localFiles, java.lang.String proxyHost, int proxyPort, EepGet.StatusListener lsnr)`
`EepPost(I2PAppContext ctx)`
`Executor(I2PAppContext ctx, Log log, java.util.List events)`
`FortunaRandomSource(I2PAppContext context)`
`LogConsoleBuffer(I2PAppContext context)`
`LogManager(I2PAppContext context)`
`PooledRandomSource(I2PAppContext context)`
`RandomSource(I2PAppContext context)`