org.glassfish.grizzly
Class NIOTransportBuilder<T extends NIOTransportBuilder>

java.lang.Object
  extended by org.glassfish.grizzly.NIOTransportBuilder<T>
Direct Known Subclasses:
TCPNIOTransportBuilder, UDPNIOTransportBuilder

public abstract class NIOTransportBuilder<T extends NIOTransportBuilder>
extends java.lang.Object

This builder is responsible for creating NIOTransport implementations as well as providing basic configuration for IOStrategies and thread pools.

Since:
2.0
See Also:
NIOTransport, IOStrategy, ThreadPoolConfig

Field Summary
protected  NIOTransport transport
          The NIOTransport implementation.
 
Constructor Summary
protected NIOTransportBuilder(java.lang.Class<? extends NIOTransport> transportClass, IOStrategy strategy)
           Constructs a new NIOTransport using the given transportClass and IOStrategy.
 
Method Summary
 NIOTransport build()
           
protected  ThreadPoolConfig configSelectorPool(ThreadPoolConfig config)
           Configure the SelectorRunner pool's default core and max pool size.
 AttributeBuilder getAttributeBuilder()
           
 IOStrategy getIOStrategy()
           
 MemoryManager getMemoryManager()
           
 java.lang.String getName()
           
 NIOChannelDistributor getNIOChannelDistributor()
           
 Processor getProcessor()
           
 ProcessorSelector getProcessorSelector()
           
 int getReadBufferSize()
           
 SelectionKeyHandler getSelectionKeyHandler()
           
 SelectorHandler getSelectorHandler()
           
 ThreadPoolConfig getSelectorThreadPoolConfig()
           
protected abstract  T getThis()
          See: http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ205
 ThreadPoolConfig getWorkerThreadPoolConfig()
           
 int getWriteBufferSize()
           
 T setAttributeBuilder(AttributeBuilder attributeBuilder)
          Set the AttributeBuilder to be used by the created NIOTransport.
 T setIOStrategy(IOStrategy strategy)
           Changes the IOStrategy that will be used.
 T setMemoryManager(MemoryManager memoryManager)
          Set the MemoryManager to be used by the created NIOTransport.
 T setName(java.lang.String name)
           
 T setNIOChannelDistributor(NIOChannelDistributor nioChannelDistributor)
          Set the NIOChannelDistributor to be used by the created NIOTransport.
 T setProcessor(Processor processor)
           
 T setProcessorSelector(ProcessorSelector processorSelector)
           
 T setReadBufferSize(int readBufferSize)
           
 T setSelectionKeyHandler(SelectionKeyHandler selectionKeyHandler)
          Set the SelectionKeyHandler to be used by the created NIOTransport.
 T setSelectorHandler(SelectorHandler selectorHandler)
          Set the SelectorHandler to be used by the created NIOTransport.
 T setWriteBufferSize(int writeBufferSize)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

transport

protected NIOTransport transport
The NIOTransport implementation.

Constructor Detail

NIOTransportBuilder

protected NIOTransportBuilder(java.lang.Class<? extends NIOTransport> transportClass,
                              IOStrategy strategy)
                       throws java.lang.IllegalAccessException,
                              java.lang.InstantiationException

Constructs a new NIOTransport using the given transportClass and IOStrategy.

The builder's worker thread pool configuration will be based on the return value of WorkerThreadPoolConfigProducer.createDefaultWorkerPoolConfig(Transport). If worker thread configuration is non-null, the initial selector thread pool configuration will be cloned from it, otherwise a default configuration will be chosen.

Parameters:
transportClass - the class of the NIOTransport implementation to be used.
strategy - the IOStrategy.
Throws:
java.lang.IllegalAccessException
java.lang.InstantiationException
Method Detail

getWorkerThreadPoolConfig

public ThreadPoolConfig getWorkerThreadPoolConfig()
Returns:
the ThreadPoolConfig that will be used to construct the ExecutorService for IOStrategies that require worker threads. Depending on the IOStrategy being used, this may return null.

getSelectorThreadPoolConfig

public ThreadPoolConfig getSelectorThreadPoolConfig()
Returns:
the ThreadPoolConfig that will be used to construct the ExecutorService which will run the NIOTransport's SelectorRunners.

getIOStrategy

public IOStrategy getIOStrategy()
Returns:
the IOStrategy that will be used by the created NIOTransport.

setIOStrategy

public T setIOStrategy(IOStrategy strategy)

Changes the IOStrategy that will be used. Invoking this method may change the return value of getWorkerThreadPoolConfig()

Parameters:
strategy - the IOStrategy to use.
Returns:
this NIOTransportBuilder

getMemoryManager

public MemoryManager getMemoryManager()
Returns:
the MemoryManager that will be used by the created NIOTransport. If not explicitly set, then MemoryManager.DEFAULT_MEMORY_MANAGER will be used.

setMemoryManager

public T setMemoryManager(MemoryManager memoryManager)
Set the MemoryManager to be used by the created NIOTransport.

Parameters:
memoryManager - the MemoryManager.
Returns:
this NIOTransportBuilder

getSelectorHandler

public SelectorHandler getSelectorHandler()
Returns:
the SelectorHandler that will be used by the created NIOTransport. If not explicitly set, then SelectorHandler.DEFAULT_SELECTOR_HANDLER will be used.

setSelectorHandler

public T setSelectorHandler(SelectorHandler selectorHandler)
Set the SelectorHandler to be used by the created NIOTransport.

Parameters:
selectorHandler - the SelectorHandler.
Returns:
this NIOTransportBuilder

getSelectionKeyHandler

public SelectionKeyHandler getSelectionKeyHandler()
Returns:
the SelectionKeyHandler that will be used by the created NIOTransport. If not explicitly set, then SelectionKeyHandler.DEFAULT_SELECTION_KEY_HANDLER will be used.

setSelectionKeyHandler

public T setSelectionKeyHandler(SelectionKeyHandler selectionKeyHandler)
Set the SelectionKeyHandler to be used by the created NIOTransport.

Parameters:
selectionKeyHandler - the SelectionKeyHandler.
Returns:
this NIOTransportBuilder

getAttributeBuilder

public AttributeBuilder getAttributeBuilder()
Returns:
the AttributeBuilder that will be used by the created NIOTransport. If not explicitly set, then AttributeBuilder.DEFAULT_ATTRIBUTE_BUILDER will be used.

setAttributeBuilder

public T setAttributeBuilder(AttributeBuilder attributeBuilder)
Set the AttributeBuilder to be used by the created NIOTransport.

Parameters:
attributeBuilder - the AttributeBuilder.
Returns:
this NIOTransportBuilder

getNIOChannelDistributor

public NIOChannelDistributor getNIOChannelDistributor()
Returns:
the NIOChannelDistributor that will be used by the created NIOTransport. If not explicitly set, then AttributeBuilder.DEFAULT_ATTRIBUTE_BUILDER will be used.

setNIOChannelDistributor

public T setNIOChannelDistributor(NIOChannelDistributor nioChannelDistributor)
Set the NIOChannelDistributor to be used by the created NIOTransport.

Parameters:
nioChannelDistributor - the NIOChannelDistributor.
Returns:
this NIOTransportBuilder

getName

public java.lang.String getName()
See Also:
Transport.getName()

setName

public T setName(java.lang.String name)
Returns:
this NIOTransportBuilder
See Also:
Transport.setName(String)

getProcessor

public Processor getProcessor()
See Also:
Transport.getProcessor()

setProcessor

public T setProcessor(Processor processor)
Returns:
this NIOTransportBuilder
See Also:
Transport.setProcessor(Processor)

getProcessorSelector

public ProcessorSelector getProcessorSelector()
See Also:
()

setProcessorSelector

public T setProcessorSelector(ProcessorSelector processorSelector)
Returns:
this NIOTransportBuilder
See Also:
Transport.setProcessorSelector(ProcessorSelector)

getReadBufferSize

public int getReadBufferSize()
See Also:
()

setReadBufferSize

public T setReadBufferSize(int readBufferSize)
Returns:
this NIOTransportBuilder
See Also:
Transport.setReadBufferSize(int)

getWriteBufferSize

public int getWriteBufferSize()
See Also:
Transport.getWriteBufferSize()

setWriteBufferSize

public T setWriteBufferSize(int writeBufferSize)
Returns:
this NIOTransportBuilder
See Also:
Transport.setWriteBufferSize(int)

build

public NIOTransport build()
Returns:
an NIOTransport based on the builder's configuration.

configSelectorPool

protected ThreadPoolConfig configSelectorPool(ThreadPoolConfig config)

Configure the SelectorRunner pool's default core and max pool size.

Parameters:
config -

getThis

protected abstract T getThis()
See: http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ205



Copyright © 2011 Oracle Corpration. All Rights Reserved.