net.i2p.i2ptunnel

## Class I2PTunnelIRCClient

- java.lang.Object
- - net.i2p.i2ptunnel.I2PTunnelTask
  - - net.i2p.i2ptunnel.I2PTunnelClientBase
    - - net.i2p.i2ptunnel.I2PTunnelIRCClient

- All Implemented Interfaces:
    Runnable, EventDispatcher

      public class I2PTunnelIRCClient
      extends I2PTunnelClientBase
      implements Runnable

  Todo: Can we extend I2PTunnelClient instead and remove some duplicated code?

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `I2PTunnelIRCClient.IrcInboundFilter`
    `static class` | `I2PTunnelIRCClient.IrcOutboundFilter`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected List<Destination>` | `dests` list of Destination objects that we point at
    `protected long` | `readTimeout`

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `_clientId, _context, _executor, _log, _ownDest, DEFAULT_CONNECT_TIMEOUT, dest, l, mySockets, sockLock, sockMgr`

    - ### Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `open`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `I2PTunnelIRCClient(int localPort, String destinations, Logging l, boolean ownDest, EventDispatcher notifyThis, I2PTunnel tunnel, String pkf)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `clientConnectionRun(Socket s)` Manage a connection in a separate thread.
    `static String` | `inboundFilter(String s, StringBuffer expectedPong)`
    `static String` | `outboundFilter(String s, StringBuffer expectedPong)`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelClientBase

      `buildSocketManager, buildSocketManager, buildSocketManager, buildSocketManager, close, closeSocket, createI2PSocket, createI2PSocket, getDefaultOptions, getDefaultOptions, getListenHost, getLocalPort, getSocketManager, getSocketManager, getSocketManager, manageConnection, run, startRunning, verifySocketManager`

    - ### Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask

      `attachEventDispatcher, detachEventDispatcher, disconnected, errorOccurred, getEventDispatcher, getEvents, getEventValue, getId, getTunnel, ignoreEvents, isOpen, notifyEvent, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString, unIgnoreEvents, waitEventValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Runnable

      `run`

- - ### Field Detail

    - #### dests

          protected List<Destination> dests

      list of Destination objects that we point at

    - #### readTimeout

          protected long readTimeout

  - ### Constructor Detail

    - #### I2PTunnelIRCClient

          public I2PTunnelIRCClient(int localPort,
                            String destinations,
                            Logging l,
                            boolean ownDest,
                            EventDispatcher notifyThis,
                            I2PTunnel tunnel,
                            String pkf)
                             throws IllegalArgumentException

      Throws:
        `IllegalArgumentException` - if the I2PTunnel does not contain valid config to contact the router

  - ### Method Detail

    - #### clientConnectionRun

          protected void clientConnectionRun(Socket s)

      Description copied from class: `I2PTunnelClientBase`
      Manage a connection in a separate thread. This only works if you do not override manageConnection()
      Specified by:
        `clientConnectionRun` in class `I2PTunnelClientBase`

    - #### inboundFilter

          public static String inboundFilter(String s,
                             StringBuffer expectedPong)

    - #### outboundFilter

          public static String outboundFilter(String s,
                              StringBuffer expectedPong)