## org.jboss.netty.channel.socket.http
Class HttpTunnelingSocketChannelConfig

    java.lang.Object
      org.jboss.netty.channel.socket.http.HttpTunnelingSocketChannelConfig

All Implemented Interfaces:
  ChannelConfig, SocketChannelConfig

    public final class HttpTunnelingSocketChannelConfig

extends Object
implements SocketChannelConfig

The `ChannelConfig` of a client-side HTTP tunneling `SocketChannel`. A `SocketChannel` created by `HttpTunnelingClientSocketChannelFactory` will return an instance of this configuration type for `SocketChannel.getConfig()`.

### Available options

In addition to the options provided by `SocketChannelConfig`, `HttpTunnelingSocketChannelConfig` allows the following options in the option map:

Name | Associated setter method
--- | ---
`"sslContext"` | `setSslContext(SSLContext)`
`"enabledSslCiperSuites"` | `setEnabledSslCipherSuites(String[])`
`"enabledSslProtocols"` | `setEnabledSslProtocols(String[])`
`"enableSslSessionCreation"` | `setEnableSslSessionCreation(boolean)`

Version:
  $Rev: 2080 $, $Date: 2010-01-26 18:04:19 +0900 (Tue, 26 Jan 2010) $
Author:
  The Netty Project, Andy Taylor (andy.taylor@jboss.org), Trustin Lee

Method Summary
`ChannelBufferFactory` `getBufferFactory()` Returns the default `ChannelBufferFactory` used to create a new `ChannelBuffer`.
`int` `getConnectTimeoutMillis()` Returns the connect timeout of the channel in milliseconds.
`String[]` `getEnabledSslCipherSuites()` Returns the cipher suites enabled for use on an `SSLEngine`.
`String[]` `getEnabledSslProtocols()` Returns the protocol versions enabled for use on an `SSLEngine`.
`ChannelPipelineFactory` `getPipelineFactory()` Returns the `ChannelPipelineFactory` which will be used when a child channel is created.
`int` `getReceiveBufferSize()` Gets the `SO_RCVBUF` option.
`int` `getSendBufferSize()` Gets the `SO_SNDBUF` option.
`String` `getServerName()` Returns the host name of the HTTP server.
`String` `getServerPath()` Returns the path where the `HttpTunnelingServlet` is mapped to.
`int` `getSoLinger()` Gets the `SO_LINGER` option.
`SSLContext` `getSslContext()` Returns the `SSLContext` which is used to establish an HTTPS connection.
`int` `getTrafficClass()` Gets the traffic class.
`boolean` `isEnableSslSessionCreation()` Returns `true` if new `SSLSession`s may be established by an `SSLEngine`.
`boolean` `isKeepAlive()` Gets the `SO_KEEPALIVE` option.
`boolean` `isReuseAddress()` Gets the `SO_REUSEADDR` option.
`boolean` `isTcpNoDelay()` Gets the `SO_TCPNODELAY` option.
`void` `setBufferFactory(ChannelBufferFactory bufferFactory)` Sets the default `ChannelBufferFactory` used to create a new `ChannelBuffer`.
`void` `setConnectTimeoutMillis(int connectTimeoutMillis)` Sets the connect timeout of the channel in milliseconds.
`void` `setEnabledSslCipherSuites(String[] suites)` Sets the cipher suites enabled for use on an `SSLEngine`.
`void` `setEnabledSslProtocols(String[] protocols)` Sets the protocol versions enabled for use on an `SSLEngine`.
`void` `setEnableSslSessionCreation(boolean flag)` Sets whether new `SSLSession`s may be established by an `SSLEngine`.
`void` `setKeepAlive(boolean keepAlive)` Sets the `SO_KEEPALIVE` option.
`boolean` `setOption(String key, Object value)` Sets a configuration property with the specified name and value.
`void` `setOptions(Map<String,Object> options)` Sets the configuration properties from the specified `Map`.
`void` `setPerformancePreferences(int connectionTime, int latency, int bandwidth)` Sets the performance preferences as specified in `Socket.setPerformancePreferences(int, int, int)`.
`void` `setPipelineFactory(ChannelPipelineFactory pipelineFactory)` Sets the `ChannelPipelineFactory` which will be used when a child channel is created.
`void` `setReceiveBufferSize(int receiveBufferSize)` Gets the `SO_RCVBUF` option.
`void` `setReuseAddress(boolean reuseAddress)` Sets the `SO_REUSEADDR` option.
`void` `setSendBufferSize(int sendBufferSize)` Sets the `SO_SNDBUF` option.
`void` `setServerName(String serverName)` Sets the host name of the HTTP server.
`void` `setServerPath(String serverPath)` Sets the path where the `HttpTunnelingServlet` is mapped to.
`void` `setSoLinger(int soLinger)` Sets the `SO_LINGER` option.
`void` `setSslContext(SSLContext sslContext)` Sets the `SSLContext` which is used to establish an HTTPS connection.
`void` `setTcpNoDelay(boolean tcpNoDelay)` Sets the `SO_TCPNODELAY` option.
`void` `setTrafficClass(int trafficClass)` Sets the traffic class as specified in `Socket.setTrafficClass(int)`.

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

Method Detail

### getServerName

    public String getServerName()

  Returns the host name of the HTTP server. If `null`, the `"Host"` header is not sent by the HTTP tunneling client.

### setServerName

    public void setServerName(String serverName)

  Sets the host name of the HTTP server. If `null`, the `"Host"` header is not sent by the HTTP tunneling client.

### getServerPath

    public String getServerPath()

  Returns the path where the `HttpTunnelingServlet` is mapped to. The default value is `"/netty-tunnel"`.

### setServerPath

    public void setServerPath(String serverPath)

  Sets the path where the `HttpTunnelingServlet` is mapped to. The default value is `"/netty-tunnel"`.

### getSslContext

    public SSLContext getSslContext()

  Returns the `SSLContext` which is used to establish an HTTPS connection. If `null`, a plain-text HTTP connection is established.

### setSslContext

    public void setSslContext(SSLContext sslContext)

  Sets the `SSLContext` which is used to establish an HTTPS connection. If `null`, a plain-text HTTP connection is established.

### getEnabledSslCipherSuites

    public String[] getEnabledSslCipherSuites()

  Returns the cipher suites enabled for use on an `SSLEngine`. If `null`, the default value will be used.

  See Also:
    `SSLEngine.getEnabledCipherSuites()`

### setEnabledSslCipherSuites

    public void setEnabledSslCipherSuites(String[] suites)

  Sets the cipher suites enabled for use on an `SSLEngine`. If `null`, the default value will be used.

  See Also:
    `SSLEngine.setEnabledCipherSuites(String[])`

### getEnabledSslProtocols

    public String[] getEnabledSslProtocols()

  Returns the protocol versions enabled for use on an `SSLEngine`.

  See Also:
    `SSLEngine.getEnabledProtocols()`

### setEnabledSslProtocols

    public void setEnabledSslProtocols(String[] protocols)

  Sets the protocol versions enabled for use on an `SSLEngine`.

  See Also:
    `SSLEngine.setEnabledProtocols(String[])`

### isEnableSslSessionCreation

    public boolean isEnableSslSessionCreation()

  Returns `true` if new `SSLSession`s may be established by an `SSLEngine`.

  See Also:
    `SSLEngine.getEnableSessionCreation()`

### setEnableSslSessionCreation

    public void setEnableSslSessionCreation(boolean flag)

  Sets whether new `SSLSession`s may be established by an `SSLEngine`.

  See Also:
    `SSLEngine.setEnableSessionCreation(boolean)`

### setOptions

    public void setOptions(Map<String,Object> options)

  Description copied from interface: `ChannelConfig`
  Sets the configuration properties from the specified `Map`.

  Specified by:
    `setOptions` in interface `ChannelConfig`

### setOption

    public boolean setOption(String key,
                             Object value)

  Description copied from interface: `ChannelConfig`
  Sets a configuration property with the specified name and value. To override this method properly, you must call the super class:

       public boolean setOption(String name, Object value) {
           if (super.setOption(name, value)) {
               return true;
           }

           if (name.equals("additionalOption")) {
               ....
               return true;
           }

           return false;
       }

  Specified by:
    `setOption` in interface `ChannelConfig`
  Returns:
    `true` if and only if the property has been set

### getReceiveBufferSize

    public int getReceiveBufferSize()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_RCVBUF` option.

  Specified by:
    `getReceiveBufferSize` in interface `SocketChannelConfig`

### getSendBufferSize

    public int getSendBufferSize()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_SNDBUF` option.

  Specified by:
    `getSendBufferSize` in interface `SocketChannelConfig`

### getSoLinger

    public int getSoLinger()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_LINGER` option.

  Specified by:
    `getSoLinger` in interface `SocketChannelConfig`

### getTrafficClass

    public int getTrafficClass()

  Description copied from interface: `SocketChannelConfig`
  Gets the traffic class.

  Specified by:
    `getTrafficClass` in interface `SocketChannelConfig`

### isKeepAlive

    public boolean isKeepAlive()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_KEEPALIVE` option.

  Specified by:
    `isKeepAlive` in interface `SocketChannelConfig`

### isReuseAddress

    public boolean isReuseAddress()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_REUSEADDR` option.

  Specified by:
    `isReuseAddress` in interface `SocketChannelConfig`

### isTcpNoDelay

    public boolean isTcpNoDelay()

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_TCPNODELAY` option.

  Specified by:
    `isTcpNoDelay` in interface `SocketChannelConfig`

### setKeepAlive

    public void setKeepAlive(boolean keepAlive)

  Description copied from interface: `SocketChannelConfig`
  Sets the `SO_KEEPALIVE` option.

  Specified by:
    `setKeepAlive` in interface `SocketChannelConfig`

### setPerformancePreferences

    public void setPerformancePreferences(int connectionTime,
                                          int latency,
                                          int bandwidth)

  Description copied from interface: `SocketChannelConfig`
  Sets the performance preferences as specified in `Socket.setPerformancePreferences(int, int, int)`.

  Specified by:
    `setPerformancePreferences` in interface `SocketChannelConfig`

### setReceiveBufferSize

    public void setReceiveBufferSize(int receiveBufferSize)

  Description copied from interface: `SocketChannelConfig`
  Gets the `SO_RCVBUF` option.

  Specified by:
    `setReceiveBufferSize` in interface `SocketChannelConfig`

### setReuseAddress

    public void setReuseAddress(boolean reuseAddress)

  Description copied from interface: `SocketChannelConfig`
  Sets the `SO_REUSEADDR` option.

  Specified by:
    `setReuseAddress` in interface `SocketChannelConfig`

### setSendBufferSize

    public void setSendBufferSize(int sendBufferSize)

  Description copied from interface: `SocketChannelConfig`
  Sets the `SO_SNDBUF` option.

  Specified by:
    `setSendBufferSize` in interface `SocketChannelConfig`

### setSoLinger

    public void setSoLinger(int soLinger)

  Description copied from interface: `SocketChannelConfig`
  Sets the `SO_LINGER` option.

  Specified by:
    `setSoLinger` in interface `SocketChannelConfig`

### setTcpNoDelay

    public void setTcpNoDelay(boolean tcpNoDelay)

  Description copied from interface: `SocketChannelConfig`
  Sets the `SO_TCPNODELAY` option.

  Specified by:
    `setTcpNoDelay` in interface `SocketChannelConfig`

### setTrafficClass

    public void setTrafficClass(int trafficClass)

  Description copied from interface: `SocketChannelConfig`
  Sets the traffic class as specified in `Socket.setTrafficClass(int)`.

  Specified by:
    `setTrafficClass` in interface `SocketChannelConfig`

### getBufferFactory

    public ChannelBufferFactory getBufferFactory()

  Description copied from interface: `ChannelConfig`
  Returns the default `ChannelBufferFactory` used to create a new `ChannelBuffer`. The default is `HeapChannelBufferFactory`. You can specify a different factory to change the default `ByteOrder` for example.

  Specified by:
    `getBufferFactory` in interface `ChannelConfig`

### getConnectTimeoutMillis

    public int getConnectTimeoutMillis()

  Description copied from interface: `ChannelConfig`
  Returns the connect timeout of the channel in milliseconds. If the `Channel` does not support connect operation, this property is not used at all, and therefore will be ignored.

  Specified by:
    `getConnectTimeoutMillis` in interface `ChannelConfig`
  Returns:
    the connect timeout in milliseconds. `0` if disabled.

### getPipelineFactory

    public ChannelPipelineFactory getPipelineFactory()

  Description copied from interface: `ChannelConfig`
  Returns the `ChannelPipelineFactory` which will be used when a child channel is created. If the `Channel` does not create a child channel, this property is not used at all, and therefore will be ignored.

  Specified by:
    `getPipelineFactory` in interface `ChannelConfig`

### setBufferFactory

    public void setBufferFactory(ChannelBufferFactory bufferFactory)

  Description copied from interface: `ChannelConfig`
  Sets the default `ChannelBufferFactory` used to create a new `ChannelBuffer`. The default is `HeapChannelBufferFactory`. You can specify a different factory to change the default `ByteOrder` for example.

  Specified by:
    `setBufferFactory` in interface `ChannelConfig`

### setConnectTimeoutMillis

    public void setConnectTimeoutMillis(int connectTimeoutMillis)

  Description copied from interface: `ChannelConfig`
  Sets the connect timeout of the channel in milliseconds. If the `Channel` does not support connect operation, this property is not used at all, and therefore will be ignored.

  Specified by:
    `setConnectTimeoutMillis` in interface `ChannelConfig`
  Parameters:
    `connectTimeoutMillis` - the connect timeout in milliseconds. `0` to disable.

### setPipelineFactory

    public void setPipelineFactory(ChannelPipelineFactory pipelineFactory)

  Description copied from interface: `ChannelConfig`
  Sets the `ChannelPipelineFactory` which will be used when a child channel is created. If the `Channel` does not create a child channel, this property is not used at all, and therefore will be ignored.

  Specified by:
    `setPipelineFactory` in interface `ChannelConfig`

Copyright © 2008-2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.