## Uses of Interface
net.i2p.client.streaming.I2PSocketOptions

- Packages that use I2PSocketOptions
  Package | Description
  --- | ---
  net.i2p.client.streaming | API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.client.streaming.impl | Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.

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

    Methods in net.i2p.client.streaming that return I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketOptions` | I2PSocketManager.`buildOptions()` Create a copy of the current options, to be used in a setDefaultOptions() call.
    `I2PSocketOptions` | I2PSocketManager.`buildOptions(Properties opts)` Create a modified copy of the current options, to be used in a setDefaultOptions() call.
    `I2PSocketOptions` | I2PSocketManager.`getDefaultOptions()` Current options, not a copy, setters may be used to make changes.
    `I2PSocketOptions` | I2PSocket.`getOptions()`

    Methods in net.i2p.client.streaming with parameters of type I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocket` | I2PSocketManager.`connect(Destination peer, I2PSocketOptions options)` Create a new connected socket (block until the socket is created)
    `void` | I2PSocketManager.`setDefaultOptions(I2PSocketOptions options)` Update the options on a running socket manager.
    `void` | I2PSocket.`setOptions(I2PSocketOptions options)` Configure the socket

  - ### Uses of I2PSocketOptions in net.i2p.client.streaming.impl

    Classes in net.i2p.client.streaming.impl that implement I2PSocketOptions
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `ConnectionOptions` Define the current options for the con (and allow custom tweaking midstream) TODO many of these are not per-connection options, and should be migrated somewhere so they aren't copied for every connection
    `(package private) class` | `I2PSocketOptionsImpl` Define the configuration for streaming and verifying data on the socket.

    Methods in net.i2p.client.streaming.impl that return I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketOptions` | I2PSocketManagerFull.`buildOptions()` Create a copy of the current options, to be used in a setDefaultOptions() call.
    `I2PSocketOptions` | I2PSocketManagerFull.`buildOptions(Properties opts)` Create a modified copy of the current options, to be used in a setDefaultOptions() call.
    `I2PSocketOptions` | I2PSocketManagerFull.`getDefaultOptions()` Current options, not a copy, setters may be used to make changes.
    `I2PSocketOptions` | I2PSocketFull.`getOptions()`

    Methods in net.i2p.client.streaming.impl with parameters of type I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocket` | I2PSocketManagerFull.`connect(Destination peer, I2PSocketOptions options)` Create a new connected socket.
    `void` | I2PSocketManagerFull.`setDefaultOptions(I2PSocketOptions options)` Update the options on a running socket manager.
    `void` | I2PSocketFull.`setOptions(I2PSocketOptions options)`

    Constructors in net.i2p.client.streaming.impl with parameters of type I2PSocketOptions
    Constructor and Description
    `ConnectionOptions(I2PSocketOptions opts)` Initializes from System properties then copies over all options.
    `I2PSocketOptionsImpl(I2PSocketOptions opts)` Initializes from System properties then copies over all options.

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

    Methods in net.i2p.i2ptunnel that return I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `protected I2PSocketOptions` | I2PTunnelClientBase.`getDefaultOptions()` Create the default options (using the default timeout, etc).
    `protected I2PSocketOptions` | I2PTunnelHTTPClient.`getDefaultOptions()` Create the default options (using the default timeout, etc).
    `protected I2PSocketOptions` | I2PTunnelConnectClient.`getDefaultOptions()` Create the default options (using the default timeout, etc).
    `protected I2PSocketOptions` | I2PTunnelClientBase.`getDefaultOptions(Properties overrides)` Create the default options (using the default timeout, etc).
    `protected I2PSocketOptions` | I2PTunnelHTTPClient.`getDefaultOptions(Properties overrides)` Create the default options (using the default timeout, etc).

    Methods in net.i2p.i2ptunnel with parameters of type I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocket` | I2PTunnelClientBase.`createI2PSocket(Destination dest, I2PSocketOptions opt)` Create a new I2PSocket towards to the specified destination, adding it to the list of connections actually managed by this tunnel.

  - ### Uses of I2PSocketOptions in net.i2p.i2ptunnel.socks

    Methods in net.i2p.i2ptunnel.socks that return I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `I2PSocketOptions` | I2PSOCKSTunnel.`buildOptions(Properties overrides)` Because getDefaultOptions() in super() is protected
    `I2PSocketOptions` | SocketWrapper.`getOptions()`

    Methods in net.i2p.i2ptunnel.socks with parameters of type I2PSocketOptions
    Modifier and Type | Method and Description
    --- | ---
    `void` | SocketWrapper.`setOptions(I2PSocketOptions options)` Does nothing