com.maverick.nio
Class DaemonContext

java.lang.Object
  extended by com.maverick.nio.DaemonContext

public class DaemonContext
extends java.lang.Object

Each instance of a Daemon has a single configuration context.

Author:
Lee David Painter

Method Summary
static void addEventListener(com.maverick.events.EventListener listener)
           
static void addEventListener(EventListener listener)
           
static void addEventListener(java.lang.String threadPrefix, com.maverick.events.EventListener listener)
           
 void addListeningInterface(java.net.InetAddress addressToBind, int portToBind, ProtocolContext context)
          Add an interface and port to the listening socket list and provide the protocol context.
 void addListeningInterface(java.lang.String addressToBind, int portToBind, ProtocolContext context)
          Add an interface and port to the listening socket list and provide the protocol context.
 ByteBufferPool getBufferPool()
          Returns a direct buffer pool.
 int getIdleServiceRunPeriod()
          Get the time in seconds for each idle period service run.
 int getInactiveServiceRunsPerIdleEvent()
          To determine whether any channels are idle a service run is performed to evaluate the state of each channel.
 java.lang.String getIpv6WorkaroundBindAddress()
           
 int getIpv6WorkaroundPort()
           
 ListeningInterface[] getListeningInterfaces()
          Get the listening socket list.
 int getMaximumChannelsPerThread()
          Get the maximum number of channels that can be serviced by a single selector thread.
 int getPermanentAcceptThreads()
          Get the number of permanent accept threads.
 int getPermanentConnectThreads()
          Get the number of permanent connect threads.
 int getPermanentTransferThreads()
          Get the number of permanent transfer threads.
 java.lang.String getProduct()
          Get the product name used to prefix thread names
 java.nio.channels.spi.SelectorProvider getSelectorProvider()
          Get the SelectorProvider used to create Selector instances.
 Daemon getServer()
          Get the instance of the SSHD for this context.
 boolean isUsingDirectBuffers()
          Determine whether the daemon is using direct byte buffers.
static void removeEventListener(java.lang.String threadPrefix)
           
 void removeListeningInterface(java.net.InetAddress addressBound, int portBound)
          Remove a listening interface from the daemon at runtime.
 void removeListeningInterface(java.lang.String anInterface)
          Deprecated. use removeListeningInterface(String, int) instead.
 void removeListeningInterface(java.lang.String addressBound, int portBound)
          Remove a listening interface from the daemon at runtime.
 void setBufferPoolArraySize(int bufferPoolArraySize)
          Set the size of the byte buffers in the pool.
 void setIdleServiceRunPeriod(int idleServicePeriod)
           
 void setInactiveServiceRunsPerIdleEvent(int inactivePeriodsPerIdleEvent)
          To determine whether any channels are idle a service run is performed to evaluate the state of each channel.
 void setIpv6WorkaroundBindAddress(java.lang.String ipv6WorkaroundBindAddress)
           
 void setIpv6WorkaroundPort(int ipv6WorkaroundPort)
           
 void setMaximumChannelsPerThread(int maximumChannelsPerThread)
          Set the maximum number of channels that can be serviced by a single selector thread.
 void setPermanentAcceptThreads(int permanentAcceptThreads)
          Set the number of permanent accept threads.
 void setPermanentConnectThreads(int permanentConnectThreads)
          Set the number of permanent connect threads.
 void setPermanentTransferThreads(int permanentTransferThreads)
          Set the number of permanent transfer threads.
 void setProduct(java.lang.String product)
          Set the product name used to prefix thread names
 void setSelectorProvider(java.nio.channels.spi.SelectorProvider selectorProvider)
          Set the SelectorProvider used by the Selector threads.
 void setUsingDirectBuffers(boolean useDirectByteBuffers)
          Configure the byte buffer pool to use direct byte buffers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setProduct

public void setProduct(java.lang.String product)
Set the product name used to prefix thread names

Parameters:
String - product

getProduct

public java.lang.String getProduct()
Get the product name used to prefix thread names


getBufferPool

public ByteBufferPool getBufferPool()
Returns a direct buffer pool.

Returns:
ByteBufferPool

setSelectorProvider

public void setSelectorProvider(java.nio.channels.spi.SelectorProvider selectorProvider)
Set the SelectorProvider used by the Selector threads.

Parameters:
selectorProvider - SelectorProvider

getSelectorProvider

public java.nio.channels.spi.SelectorProvider getSelectorProvider()
Get the SelectorProvider used to create Selector instances.

Returns:
SelectorProvider

getServer

public Daemon getServer()
Get the instance of the SSHD for this context.

Returns:

isUsingDirectBuffers

public boolean isUsingDirectBuffers()
Determine whether the daemon is using direct byte buffers.

Returns:
boolean

setUsingDirectBuffers

public void setUsingDirectBuffers(boolean useDirectByteBuffers)
Configure the byte buffer pool to use direct byte buffers.

Parameters:
useDirectByteBuffers - boolean

setBufferPoolArraySize

public void setBufferPoolArraySize(int bufferPoolArraySize)
Set the size of the byte buffers in the pool. The minimum size is 35000 bytes

Parameters:
bufferPoolArraySize - int

addListeningInterface

public void addListeningInterface(java.lang.String addressToBind,
                                  int portToBind,
                                  ProtocolContext context)
                           throws java.io.IOException
Add an interface and port to the listening socket list and provide the protocol context. handler for subsequent connections.

Parameters:
addressToBind - String
portToBind - int
protocolContext -
Throws:
java.io.IOException
java.io.IOException

addListeningInterface

public void addListeningInterface(java.net.InetAddress addressToBind,
                                  int portToBind,
                                  ProtocolContext context)
                           throws java.io.IOException
Add an interface and port to the listening socket list and provide the protocol context.

Parameters:
addressToBind -
portToBind -
context -
Throws:
java.io.IOException

removeListeningInterface

public void removeListeningInterface(java.net.InetAddress addressBound,
                                     int portBound)
Remove a listening interface from the daemon at runtime.

Parameters:
addressBound -
portBound -

removeListeningInterface

public void removeListeningInterface(java.lang.String addressBound,
                                     int portBound)
                              throws java.net.UnknownHostException
Remove a listening interface from the daemon at runtime.

Parameters:
addressBound -
portBound -
Throws:
java.net.UnknownHostException

removeListeningInterface

public void removeListeningInterface(java.lang.String anInterface)
                              throws java.io.IOException
Deprecated. use removeListeningInterface(String, int) instead.

Remove an interface and port from the listening socket list.

Parameters:
String - anInterface
Throws:
java.io.IOException

getListeningInterfaces

public ListeningInterface[] getListeningInterfaces()
Get the listening socket list.

Returns:
InetSocketAddress[]

getPermanentAcceptThreads

public int getPermanentAcceptThreads()
Get the number of permanent accept threads.

Returns:
int

setPermanentAcceptThreads

public void setPermanentAcceptThreads(int permanentAcceptThreads)
Set the number of permanent accept threads.

An accept thread services the asynchronous server socket by processing requests for connections. Once a connection has been accepted it is then registered with a transfer thread where all IO is handled.

The server maintains this number of permanent threads but will also dynamically create additional threads if the permanent threads are overloaded.

Parameters:
permanentAcceptThreads -

getPermanentConnectThreads

public int getPermanentConnectThreads()
Get the number of permanent connect threads.

Returns:

setPermanentConnectThreads

public void setPermanentConnectThreads(int permanentConnectThreads)
Set the number of permanent connect threads. When existing SSH connections make outgoing socket connections through port forwarding; the asynchronous connection process is handled by these threads. Once the connection has been established the socket is then registered with a transfer thread where all IO is performed.

Parameters:
permanentConnectThreads -

getPermanentTransferThreads

public int getPermanentTransferThreads()
Get the number of permanent transfer threads.

Returns:

setPermanentTransferThreads

public void setPermanentTransferThreads(int permanentTransferThreads)
Set the number of permanent transfer threads. Once a socket has either been accepted or connected, the socket is registered with a transfer thread. This thread asynchronously performs all the IO for the socket. If all the permanent threads become fully loaded then additional threads will be created to handle additional connections and shutdown once they have no sockets to service.

Parameters:
permanentAcceptThreads -

getMaximumChannelsPerThread

public int getMaximumChannelsPerThread()
Get the maximum number of channels that can be serviced by a single selector thread.

Returns:

setMaximumChannelsPerThread

public void setMaximumChannelsPerThread(int maximumChannelsPerThread)
Set the maximum number of channels that can be serviced by a single selector thread. Setting this value to 1 effectivley gives you a thread-per-connection model.

Parameters:
maximumChannelsPerThread -

getIdleServiceRunPeriod

public int getIdleServiceRunPeriod()
Get the time in seconds for each idle period service run. For example if this setting is 10 (default) then every 10 seconds an idle service run will be performed. This will process all the current channels on a thread and evaluate whether an idle event should be fired on the channel.

Returns:
int

setIdleServiceRunPeriod

public void setIdleServiceRunPeriod(int idleServicePeriod)
Parameters:
idleServicePeriod - int

getInactiveServiceRunsPerIdleEvent

public int getInactiveServiceRunsPerIdleEvent()
To determine whether any channels are idle a service run is performed to evaluate the state of each channel. Each time a channel is found to be inactive we flag it. This setting defines how many times it should be flagged consequentivly before an idle event is fired.

Returns:
int

setInactiveServiceRunsPerIdleEvent

public void setInactiveServiceRunsPerIdleEvent(int inactivePeriodsPerIdleEvent)
To determine whether any channels are idle a service run is performed to evaluate the state of each channel. Each time a channel is found to be inactive we flag it. This setting defines how many times it should be flagged consequentivly before an idle event is fired.

Parameters:
inactivePeriodsPerIdleEvent - int

addEventListener

public static void addEventListener(com.maverick.events.EventListener listener)

addEventListener

public static void addEventListener(java.lang.String threadPrefix,
                                    com.maverick.events.EventListener listener)

addEventListener

public static void addEventListener(EventListener listener)

removeEventListener

public static void removeEventListener(java.lang.String threadPrefix)

getIpv6WorkaroundPort

public int getIpv6WorkaroundPort()

setIpv6WorkaroundPort

public void setIpv6WorkaroundPort(int ipv6WorkaroundPort)

getIpv6WorkaroundBindAddress

public java.lang.String getIpv6WorkaroundBindAddress()

setIpv6WorkaroundBindAddress

public void setIpv6WorkaroundBindAddress(java.lang.String ipv6WorkaroundBindAddress)


Copyright © 2003-2008 SSHTools LTD. All Rights Reserved.