## Uses of Class
net.i2p.I2PAppContext

- Packages that use I2PAppContext
  Package | Description
  --- | ---
  gnu.crypto.prng |
  net.i2p | Core I2P package, contains information about the I2P version and an entry point to access important elements.
  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 | These classes provide a number of low-level cryptographic routines.
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  net.i2p.data.i2np | The Invisible Internet Network Protocol (I2NP) is only a part of how an application can send messages over the network.
  net.i2p.desktopgui.router |
  net.i2p.i2ptunnel |
  net.i2p.i2ptunnel.udpTunnel |
  net.i2p.i2ptunnel.web |
  net.i2p.router | The I2P router application handles the I2P network communication.
  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.web |
  net.i2p.sam.client |
  net.i2p.stat | These classes define the statistics package used extensively throughout the I2P router - both for adaptive operation of the router and for debugging.
  net.i2p.time | Provides classes for time synchronisation using NTP.
  net.i2p.util | These classes define the several useful utilities used throughout the router and applications.
  org.cybergarage.util |
  org.klomp.snark |

- - ### Uses of I2PAppContext in gnu.crypto.prng

    Constructors in gnu.crypto.prng with parameters of type I2PAppContext
    Constructor and Description
    `AsyncFortunaStandalone(I2PAppContext context)`

  - ### Uses of I2PAppContext in net.i2p

    Fields in net.i2p declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected static I2PAppContext` | I2PAppContext.`_globalAppContext` the context that components without explicit root are bound

    Methods in net.i2p that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static I2PAppContext` | I2PAppContext.`getCurrentContext()` Pull the default context, WITHOUT creating a new one.
    `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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `I2PSession` | I2PClientImpl.`createSession(I2PAppContext context, InputStream destKeyStream, Properties options)` Create a new session (though do not connect it yet)
    `I2PSession` | I2PSimpleClient.`createSession(I2PAppContext context, Properties options)` Create a new session (though do not connect it yet)
    `static Socket` | I2CPSSLSocketFactory.`createSocket(I2PAppContext ctx, String host, int port)` Initializes the static SSL Context if required, then returns a socket to the host.

    Constructors in net.i2p.client with parameters of type I2PAppContext
    Constructor and Description
    `BWLimitsMessageHandler(I2PAppContext ctx)`
    `DestReplyMessageHandler(I2PAppContext ctx)`
    `DisconnectMessageHandler(I2PAppContext context)`
    `HandlerImpl(I2PAppContext context, int type)`
    `I2CPMessageProducer(I2PAppContext context)`
    `I2PClientMessageHandlerMap(I2PAppContext context)`
    `I2PSessionDemultiplexer(I2PAppContext ctx)`
    `I2PSessionImpl(I2PAppContext context, InputStream destKeyStream, 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, InputStream destKeyStream, 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
    `I2PSessionMuxedImpl(I2PAppContext ctx, InputStream destKeyStream, Properties options)`
    `I2PSimpleSession(I2PAppContext context, Properties options)` Create a new session for doing naming and bandwidth queries only.
    `MessagePayloadMessageHandler(I2PAppContext context)`
    `MessageState(I2PAppContext ctx, long nonce, String prefix)`
    `MessageStatusMessageHandler(I2PAppContext context)`
    `RequestLeaseSetMessageHandler(I2PAppContext context)`
    `SessionIdleTimer(I2PAppContext context, I2PSessionImpl session, boolean reduce, boolean shutdown)` reduce, shutdown, or both must be true
    `SessionStatusMessageHandler(I2PAppContext context)`
    `SetDateMessageHandler(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.client.naming

    Fields in net.i2p.client.naming declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | NamingService.`_context`

    Methods in net.i2p.client.naming with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static NamingService` | NamingService.`createInstance(I2PAppContext context)` Get a naming service instance.
    `(package private) static Destination` | LookupDest.`lookupBase32Hash(I2PAppContext ctx, String key)`
    `(package private) static Destination` | LookupDest.`lookupHash(I2PAppContext ctx, byte[] h)`

    Constructors in net.i2p.client.naming with parameters of type I2PAppContext
    Constructor and Description
    `BlockfileNamingService(I2PAppContext context)`
    `DummyNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `EepGetAndAddNamingService(I2PAppContext context)` Deprecated.
    `EepGetNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `ExecNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `HostsTxtNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `LookupDest(I2PAppContext context)`
    `MetaNamingService(I2PAppContext context)` Adds the services from the i2p.nameservicelist property, in order, as chained services.
    `MetaNamingService(I2PAppContext context, List<NamingService> services)`
    `NamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.
    `SingleFileNamingService(I2PAppContext context, String filename)`

  - ### Uses of I2PAppContext in net.i2p.client.streaming

    Fields in net.i2p.client.streaming declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | SchedulerImpl.`_context`

    Methods in net.i2p.client.streaming with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | I2PSocketManagerFull.`init(I2PAppContext context, I2PSession session, Properties opts, String name)`
    `void` | I2PSocketManager.`init(I2PAppContext context, I2PSession session, Properties opts, String name)`
    `void` | I2PSocketManagerImpl.`init(I2PAppContext context, I2PSession session, Properties opts, String name)` Deprecated.
    `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
    Constructor and Description
    `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)`
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url)`
    `I2PSocketEepGet(I2PAppContext ctx, I2PSocketManager mgr, int numRetries, String outputFile, String url)`
    `I2PSocketManagerFull(I2PAppContext context, I2PSession session, Properties opts, String name)`
    `MessageHandler(I2PAppContext ctx, ConnectionManager mgr)`
    `MessageInputStream(I2PAppContext ctx)`
    `MessageOutputStream(I2PAppContext ctx, MessageOutputStream.DataReceiver receiver)`
    `MessageOutputStream(I2PAppContext ctx, MessageOutputStream.DataReceiver receiver, int bufSize)`
    `MessageOutputStream(I2PAppContext ctx, MessageOutputStream.DataReceiver receiver, int bufSize, int passiveFlushDelay)`
    `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)`
    `TCBShare(I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.crypto

    Fields in net.i2p.crypto declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | AESEngine.`_context`
    `protected I2PAppContext` | TransientSessionKeyManager.`_context`

    Methods in net.i2p.crypto with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(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

    Constructors in net.i2p.crypto with parameters of type I2PAppContext
    Constructor and Description
    `AESEngine(I2PAppContext ctx)`
    `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.
    `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)`
    `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
    Constructor and Description
    `RoutingKeyGenerator(I2PAppContext context)`

  - ### Uses of I2PAppContext in net.i2p.data.i2np

    Fields in net.i2p.data.i2np declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2NPMessageImpl.`_context`

    Methods in net.i2p.data.i2np with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2NPMessage` | I2NPMessageImpl.Builder.`build(I2PAppContext ctx)` instantiate a new I2NPMessage to be populated shortly
    `static 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, I2NPMessageHandler handler)` used by SSU only

    Constructors in net.i2p.data.i2np with parameters of type I2PAppContext
    Constructor and Description
    `DatabaseLookupMessage(I2PAppContext context)`
    `DatabaseLookupMessage(I2PAppContext context, boolean locallyCreated)`
    `DatabaseSearchReplyMessage(I2PAppContext context)`
    `DatabaseStoreMessage(I2PAppContext context)`
    `DataMessage(I2PAppContext context)`
    `DeliveryStatusMessage(I2PAppContext context)`
    `GarlicMessage(I2PAppContext context)`
    `I2NPMessageHandler(I2PAppContext context)`
    `I2NPMessageImpl(I2PAppContext context)`
    `TunnelBuildMessage(I2PAppContext context)`
    `TunnelBuildMessage(I2PAppContext context, int records)`
    `TunnelBuildReplyMessage(I2PAppContext context)`
    `TunnelBuildReplyMessage(I2PAppContext context, int records)`
    `TunnelDataMessage(I2PAppContext context)`
    `TunnelGatewayMessage(I2PAppContext context)`
    `UnknownI2NPMessage(I2PAppContext context, int type)`
    `VariableTunnelBuildMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `VariableTunnelBuildMessage(I2PAppContext context, int records)`
    `VariableTunnelBuildReplyMessage(I2PAppContext context)` zero record count, will be set with readMessage()
    `VariableTunnelBuildReplyMessage(I2PAppContext context, int records)`

  - ### Uses of I2PAppContext in net.i2p.desktopgui.router

    Methods in net.i2p.desktopgui.router that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static I2PAppContext` | RouterManager.`getAppContext()`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel

    Fields in net.i2p.i2ptunnel declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2PTunnelClientBase.`_context`

    Methods in net.i2p.i2ptunnel that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `I2PAppContext` | I2PTunnel.`getContext()`

    Methods in net.i2p.i2ptunnel with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `protected static Map<String,List<String>>` | I2PTunnelHTTPServer.`readHeaders(InputStream in, StringBuilder command, String[] skipHeaders, I2PAppContext ctx)`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.udpTunnel

    Fields in net.i2p.i2ptunnel.udpTunnel declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | I2PTunnelUDPClientBase.`_context`

  - ### Uses of I2PAppContext in net.i2p.i2ptunnel.web

    Fields in net.i2p.i2ptunnel.web declared as I2PAppContext
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | IndexBean.`_context`

    Methods in net.i2p.i2ptunnel.web with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static String` | Messages.`_(String key, I2PAppContext ctx)`

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

    Subclasses of I2PAppContext in net.i2p.router
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RouterContext` Build off the core I2P context to provide a root for a router instance to coordinate its resources.

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

    Constructors in net.i2p.router.networkdb.kademlia with parameters of type I2PAppContext
    Constructor and Description
    `KBucketImpl(I2PAppContext context, Hash local)` for testing - use above constructor for production to get common caching
    `KBucketImpl(I2PAppContext context, LocalHash local)`
    `KBucketSet(I2PAppContext context, Hash us)`

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

    Methods in net.i2p.router.startup with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static File` | ClientAppConfig.`configFile(I2PAppContext ctx)`

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

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

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

    Constructors in net.i2p.router.transport.ntcp with parameters of type I2PAppContext
    Constructor and Description
    `NTCPSendFinisher(I2PAppContext context, NTCPTransport transport)`

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

    Methods in net.i2p.router.transport.udp with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static UDPPacket` | UDPPacket.`acquire(I2PAppContext ctx, boolean inbound)`

    Constructors in net.i2p.router.transport.udp with parameters of type I2PAppContext
    Constructor and Description
    `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
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | HopProcessor.`_context`

    Methods in net.i2p.router.tunnel with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static 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)` Undo the crypto for a single hop.
    `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.
    `static int[]` | BuildReplyHandler.`decrypt(I2PAppContext ctx, TunnelBuildReplyMessage reply, TunnelCreatorConfig cfg, List<Integer> recordOrder)` Decrypt the tunnel build reply records.
    `static void` | BuildMessageGenerator.`layeredEncrypt(I2PAppContext ctx, TunnelBuildMessage msg, TunnelCreatorConfig cfg, 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
    Constructor and Description
    `BuildMessageProcessor(I2PAppContext ctx)`
    `FragmentedMessage(I2PAppContext ctx)`
    `HopProcessor(I2PAppContext ctx, HopConfig config)` Deprecated. unused
    `HopProcessor(I2PAppContext ctx, HopConfig config, IVValidator validator)`
    `InboundGatewayProcessor(I2PAppContext ctx, HopConfig config)`
    `InboundSender(I2PAppContext ctx, HopConfig config)`
    `OutboundGatewayProcessor(I2PAppContext ctx, TunnelCreatorConfig cfg)`
    `OutboundSender(I2PAppContext ctx, TunnelCreatorConfig config)`

  - ### Uses of I2PAppContext in net.i2p.router.web

    Methods in net.i2p.router.web with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) static WebApplicationContext` | WebAppStarter.`addWebApp(I2PAppContext ctx, Server server, String appName, String warPath, File tmpdir)` add but don't start This is used only by RouterConsoleRunner, which adds all the webapps first and then starts all at once.
    `(package private) static String` | SummaryListener.`createName(I2PAppContext ctx, 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 String` | NavHelper.`getClientAppLinks(I2PAppContext ctx)` Translated string is loaded by PluginStarter
    `static NewsFetcher` | NewsFetcher.`getInstance(I2PAppContext ctx)`
    `static String` | ConfigUpdateHelper.`getNewsURL(I2PAppContext ctx)` hack to replace the old news location with the new one, even if they have saved the update page at some point
    `static Map<String,String>` | PluginStarter.`getPluginKeys(I2PAppContext ctx)` The signing keys from all the plugins
    `static String` | Messages.`getString(int n, String s, String p, I2PAppContext ctx)` translate (ngettext) @since 0.7.14
    `static String` | Messages.`getString(String key, I2PAppContext ctx)` lang in routerconsole.lang property, else current locale
    `static String` | Messages.`getString(String s, Object o, I2PAppContext ctx)` translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
    `static String` | Messages.`getString(String s, Object o, Object o2, I2PAppContext ctx)` two params @since 0.7.14
    `static Properties` | PluginStarter.`pluginProperties(I2PAppContext ctx, String appName)` plugin.config
    `(package private) static boolean` | PluginStarter.`pluginsEnabled(I2PAppContext ctx)`
    `static void` | SummaryRenderer.`render(I2PAppContext ctx, OutputStream out, String filename)` Deprecated. unsed
    `(package private) static void` | WebAppStarter.`startWebApp(I2PAppContext ctx, Server server, String appName, String warPath)` adds and starts

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

  - ### Uses of I2PAppContext in net.i2p.sam.client

    Constructors in net.i2p.sam.client with parameters of type I2PAppContext
    Constructor and Description
    `SAMEventHandler(I2PAppContext ctx)`
    `SAMReader(I2PAppContext context, InputStream samIn, SAMReader.SAMClientEventListener listener)`
    `SAMStreamSend(I2PAppContext ctx, String samHost, String samPort, String destFile, String dataFile)`
    `SAMStreamSink(I2PAppContext ctx, String samHost, String samPort, String destFile, String sinkDir)`

  - ### Uses of I2PAppContext in net.i2p.stat

    Constructors in net.i2p.stat with parameters of type I2PAppContext
    Constructor and Description
    `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
    Constructor and Description
    `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
    Modifier and Type | Field and Description
    --- | ---
    `protected I2PAppContext` | Clock.`_context`
    `protected I2PAppContext` | EepGet.`_context`
    `protected I2PAppContext` | DecayingBloomFilter.`_context`
    `protected I2PAppContext` | RandomSource.`_context`

    Methods in net.i2p.util that return I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `(package private) I2PAppContext` | LogManager.`getContext()` Convenience method for LogRecordFormatter

    Methods in net.i2p.util with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static String` | Translate.`getLanguage(I2PAppContext ctx)`
    `static String` | Translate.`getString(int n, String s, String p, I2PAppContext ctx, String bun)` Use GNU ngettext For .po file format see http://www.gnu.org/software/gettext/manual/gettext.html.gz#Translating-plural-forms
    `static String` | Translate.`getString(String key, I2PAppContext ctx, String bun)` lang in routerconsole.lang property, else current locale
    `static String` | Translate.`getString(String s, Object o, I2PAppContext ctx, String bun)` translate a string with a parameter This is a lot more expensive than getString(s, ctx), so use sparingly.
    `static String` | Translate.`getString(String s, Object o, Object o2, I2PAppContext ctx, String bun)` for {0} and {1}
    `protected void` | PooledRandomSource.`initializePool(I2PAppContext context)` Deprecated.

    Constructors in net.i2p.util with parameters of type I2PAppContext
    Constructor and Description
    `BufferedRandomSource(I2PAppContext context)` Deprecated.
    `BufferedRandomSource(I2PAppContext context, int bufferSize)` Deprecated.
    `Clock(I2PAppContext context)`
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes)` Create a bloom filter that will decay its entries over time.
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name)`
    `DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name, int m)`
    `DecayingBloomFilter(int durationMs, int entryBytes, String name, I2PAppContext context)` only for extension by DHS
    `DecayingHashSet(I2PAppContext context, int durationMs, int entryBytes)` Create a double-buffered hash set that will decay its entries over time.
    `DecayingHashSet(I2PAppContext context, int durationMs, int entryBytes, String name)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url, boolean allowCaching, String etag, String postData)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, long minSize, long maxSize, String outputFile, OutputStream outputStream, String url, boolean allowCaching, String etag, String lastModified, String postData)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching, String etag)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching, String etag, String lastModified)`
    `EepGet(I2PAppContext ctx, boolean shouldProxy, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, String postData)`
    `EepGet(I2PAppContext ctx, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, int numRetries, String outputFile, String url, boolean allowCaching)`
    `EepGet(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String outputFile, String url)`
    `EepGet(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String outputFile, String url, boolean allowCaching)`
    `EepGetScheduler(I2PAppContext ctx, List urls, List localFiles, String proxyHost, int proxyPort, EepGet.StatusListener lsnr)` Deprecated.
    `EepHead(I2PAppContext ctx, String proxyHost, int proxyPort, int numRetries, String url)`
    `EepPost(I2PAppContext ctx)` Deprecated.
    `Executor(I2PAppContext ctx, Log log, List events, SimpleStore x)`
    `FortunaRandomSource(I2PAppContext context)`
    `LogConsoleBuffer(I2PAppContext context)`
    `LogManager(I2PAppContext context)`
    `PartialEepGet(I2PAppContext ctx, String proxyHost, int proxyPort, OutputStream outputStream, String url, long size)`
    `PooledRandomSource(I2PAppContext context)` Deprecated.
    `RandomSource(I2PAppContext context)`
    `SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url)` A new SSLEepGet with a new SSLState
    `SSLEepGet(I2PAppContext ctx, OutputStream outputStream, String url, SSLEepGet.SSLState state)`

  - ### Uses of I2PAppContext in org.cybergarage.util

    Methods in org.cybergarage.util with parameters of type I2PAppContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | Debug.`initialize(I2PAppContext ctx)` I2P this is all static so have the UPnPManager call this

  - ### Uses of I2PAppContext in org.klomp.snark

    Constructors in org.klomp.snark with parameters of type I2PAppContext
    Constructor and Description
    `I2PSnarkUtil(I2PAppContext ctx)`
    `Snark(I2PAppContext ctx, Properties opts, String torrent, StorageListener slistener, boolean start, String rootDir)` single torrent - via router