## Uses of Interface
net.i2p.util.EventDispatcher

Packages that use EventDispatcher
net.i2p.i2ptunnel
net.i2p.i2ptunnel.socks
net.i2p.i2ptunnel.streamr
net.i2p.i2ptunnel.udpTunnel
net.i2p.util: These classes define the several useful utilities used throughout the router and applications.

Uses of EventDispatcher in net.i2p.i2ptunnel

Classes in net.i2p.i2ptunnel that implement EventDispatcher
`class` `I2Ping`
`class` `I2PTunnel` Todo: Most events are not listened to elsewhere, so error propagation is poor
`class` `I2PTunnelClient`
`class` `I2PTunnelClientBase`
`class` `I2PTunnelConnectClient` Supports the following:
`class` `I2PTunnelHTTPBidirProxy` Reuse HTTP server's I2PSocketManager for a proxy with no outproxy capability.
`class` `I2PTunnelHTTPBidirServer`
`class` `I2PTunnelHTTPClient` Act as a mini HTTP proxy, handling various different types of requests, forwarding them through I2P appropriately, and displaying the reply.
`class` `I2PTunnelHTTPClientBase` Common things for HTTPClient and ConnectClient Retrofit over them in 0.8.2
`class` `I2PTunnelHTTPServer` Simple extension to the I2PTunnelServer that filters the HTTP headers sent from the client to the server, replacing the Host header with whatever this instance has been configured with, and if the browser set Accept-encoding: x-i2p-gzip, gzip the http message body and set Content-encoding: x-i2p-gzip.
`class` `I2PTunnelIRCClient` Todo: Can we extend I2PTunnelClient instead and remove some duplicated code?
`class` `I2PTunnelIRCServer` Simple extension to the I2PTunnelServer that filters the registration sequence to pass the destination hash of the client through as the hostname, so an IRC Server may track users across nick changes.
`class` `I2PTunnelServer`
`class` `I2PTunnelTask` Either a Server or a Client.

Methods in net.i2p.i2ptunnel that return EventDispatcher
`EventDispatcher` `I2PTunnel.getEventDispatcher()`
`EventDispatcher` `I2PTunnelTask.getEventDispatcher()`

Methods in net.i2p.i2ptunnel with parameters of type EventDispatcher
`void` `I2PTunnel.attachEventDispatcher(EventDispatcher e)`
`void` `I2PTunnelTask.attachEventDispatcher(EventDispatcher e)`
`void` `I2PTunnel.detachEventDispatcher(EventDispatcher e)`
`void` `I2PTunnelTask.detachEventDispatcher(EventDispatcher e)`

Constructors in net.i2p.i2ptunnel with parameters of type EventDispatcher
`I2Ping(String cmd, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`
`I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)`
`I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel, String pkf)`
`I2PTunnelClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)`
`I2PTunnelConnectClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPBidirProxy(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)`
`I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPBidirServer(InetAddress host, int port, int proxyport, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPClient(int localPort, Logging l, boolean ownDest, String wwwProxy, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPClient(int localPort, Logging l, I2PSocketManager sockMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)`
`I2PTunnelHTTPClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName, I2PTunnel tunnel)`
`I2PTunnelHTTPClientBase(int localPort, Logging l, I2PSocketManager sktMgr, I2PTunnel tunnel, EventDispatcher notifyThis, long clientId)`
`I2PTunnelHTTPServer(InetAddress host, int port, File privkey, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPServer(InetAddress host, int port, InputStream privData, String privkeyname, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelIRCClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`
`I2PTunnelIRCServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelServer(InetAddress host, int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelServer(InetAddress host, int port, InputStream privData, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelServer(InetAddress host, int port, String privData, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelTask(String name, EventDispatcher notifyThis, I2PTunnel tunnel)`

Uses of EventDispatcher in net.i2p.i2ptunnel.socks

Classes in net.i2p.i2ptunnel.socks that implement EventDispatcher
`class` `I2PSOCKSIRCTunnel`
`class` `I2PSOCKSTunnel`
`class` `SOCKSUDPTunnel` A Datagram Tunnel that can have multiple bidirectional ports on the UDP side.

Constructors in net.i2p.i2ptunnel.socks with parameters of type EventDispatcher
`I2PSOCKSIRCTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`
`I2PSOCKSTunnel(int localPort, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`

Uses of EventDispatcher in net.i2p.i2ptunnel.streamr

Classes in net.i2p.i2ptunnel.streamr that implement EventDispatcher
`class` `StreamrConsumer` Compared to a standard I2PTunnel, this acts like a client on the I2P side (no privkey file) but a server on the UDP side (sends to a configured host/port)
`class` `StreamrProducer` Compared to a standard I2PTunnel, this acts like a server on the I2P side (persistent privkey file) but a client on the UDP side (receives on a configured port)

Constructors in net.i2p.i2ptunnel.streamr with parameters of type EventDispatcher
`StreamrConsumer(InetAddress host, int port, String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`StreamrProducer(int port, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`

Uses of EventDispatcher in net.i2p.i2ptunnel.udpTunnel

Classes in net.i2p.i2ptunnel.udpTunnel that implement EventDispatcher
`class` `I2PTunnelUDPClientBase` Base client class that sets up an I2P Datagram client destination.
`class` `I2PTunnelUDPServerBase` Base client class that sets up an I2P Datagram server destination.

Constructors in net.i2p.i2ptunnel.udpTunnel with parameters of type EventDispatcher
`I2PTunnelUDPClientBase(String destination, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`
`I2PTunnelUDPServerBase(boolean verify, File privkey, String privkeyname, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)`

Uses of EventDispatcher in net.i2p.util

Classes in net.i2p.util that implement EventDispatcher
`class` `EventDispatcherImpl` An implementation of the EventDispatcher interface.

Methods in net.i2p.util that return EventDispatcher
`EventDispatcher` `EventDispatcher.getEventDispatcher()` Get an object to be used to deliver events (usually `this`, but YMMV).
`EventDispatcher` `EventDispatcherImpl.getEventDispatcher()`

Methods in net.i2p.util with parameters of type EventDispatcher
`void` `EventDispatcher.attachEventDispatcher(EventDispatcher iev)` Attach an EventDispatcher object to the events dispatching chain.
`void` `EventDispatcherImpl.attachEventDispatcher(EventDispatcher ev)`
`void` `EventDispatcher.detachEventDispatcher(EventDispatcher iev)` Detach the specified EventDispatcher object from the events dispatching chain.
`void` `EventDispatcherImpl.detachEventDispatcher(EventDispatcher ev)`