## net.i2p.i2ptunnel
Class TunnelController

    java.lang.Object
      net.i2p.i2ptunnel.TunnelController

All Implemented Interfaces:
  Logging

    public class TunnelController

extends Object
implements Logging

Coordinate the runtime operation and configuration of a tunnel. These objects are bundled together under a TunnelControllerGroup where the entire group is stored / loaded from a single config file.

Constructor Summary
`TunnelController(Properties config, String prefix)` Create a new controller for a tunnel out of the specific config options.
`TunnelController(Properties config, String prefix, boolean createKey)`

Method Summary
`List<String>` `clearMessages()` Pull off any messages that the I2PTunnel has produced
`String` `getClientOptions()`
`Properties` `getConfig(String prefix)`
`String` `getDescription()`
`String` `getI2CPHost()`
`String` `getI2CPPort()`
`boolean` `getIsRunning()`
`boolean` `getIsStandby()` if running but no open sessions, we are in standby
`boolean` `getIsStarting()`
`String` `getListenOnInterface()`
`String` `getListenPort()`
`String` `getMyDestHashBase32()`
`String` `getMyDestination()`
`String` `getName()`
`boolean` `getPersistentClientKey()`
`String` `getPrivKeyFile()`
`String` `getProxyList()`
`String` `getSharedClient()` default true
`String` `getSpoofedHost()`
`boolean` `getStartOnLoad()` default true
`void` `getSummary(StringBuilder buf)`
`String` `getTargetDestination()`
`String` `getTargetHost()`
`String` `getTargetPort()`
`String` `getType()`
`void` `log(String s)`
`void` `restartTunnel()`
`void` `setConfig(Properties config, String prefix)`
`void` `startTunnel()` Start up the tunnel (if it isn't already running)
`void` `startTunnelBackground()`
`void` `stopTunnel()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TunnelController

    public TunnelController(Properties config,
                            String prefix)

  Create a new controller for a tunnel out of the specific config options. The config may contain a large number of options - only ones that begin in the prefix should be used (and, in turn, that prefix should be stripped off before being interpreted by this controller)

  Parameters:
    `config` - original key=value mapping
    `prefix` - beginning of key values that are relevent to this tunnel

### TunnelController

    public TunnelController(Properties config,
                            String prefix,
                            boolean createKey)

Parameters:
  `createKey` - for servers, whether we want to create a brand new destination with private keys at the location specified or not (does not overwrite existing ones)

Method Detail

### startTunnelBackground

    public void startTunnelBackground()

### startTunnel

    public void startTunnel()

  Start up the tunnel (if it isn't already running)

### stopTunnel

    public void stopTunnel()

### restartTunnel

    public void restartTunnel()

### setConfig

    public void setConfig(Properties config,
                          String prefix)

### getConfig

    public Properties getConfig(String prefix)

### getType

    public String getType()

### getName

    public String getName()

### getDescription

    public String getDescription()

### getI2CPHost

    public String getI2CPHost()

### getI2CPPort

    public String getI2CPPort()

### getClientOptions

    public String getClientOptions()

### getListenOnInterface

    public String getListenOnInterface()

### getTargetHost

    public String getTargetHost()

### getTargetPort

    public String getTargetPort()

### getSpoofedHost

    public String getSpoofedHost()

### getPrivKeyFile

    public String getPrivKeyFile()

### getListenPort

    public String getListenPort()

### getTargetDestination

    public String getTargetDestination()

### getProxyList

    public String getProxyList()

### getSharedClient

    public String getSharedClient()

  default true

### getStartOnLoad

    public boolean getStartOnLoad()

  default true

### getPersistentClientKey

    public boolean getPersistentClientKey()

### getMyDestination

    public String getMyDestination()

### getMyDestHashBase32

    public String getMyDestHashBase32()

### getIsRunning

    public boolean getIsRunning()

### getIsStarting

    public boolean getIsStarting()

### getIsStandby

    public boolean getIsStandby()

  if running but no open sessions, we are in standby

### getSummary

    public void getSummary(StringBuilder buf)

### log

    public void log(String s)

  Specified by:
    `log` in interface `Logging`

### clearMessages

    public List<String> clearMessages()

  Pull off any messages that the I2PTunnel has produced

  Returns:
    list of messages pulled off (each is a String, earliest first)