org.glassfish.grizzly.utils
Class IdleTimeoutFilter

java.lang.Object
  extended by org.glassfish.grizzly.filterchain.BaseFilter
      extended by org.glassfish.grizzly.utils.IdleTimeoutFilter
All Implemented Interfaces:
Filter

public class IdleTimeoutFilter
extends BaseFilter

The Filter is responsible for tracking Connection activity and closing Connection ones it becomes idle for certain amount of time. Unlike ActivityCheckFilter, this Filter assumes Connection is idle, when no event is being executed on it. But if some event processing was suspended - this Filter still assumes Connection is active.

Author:
Alexey Stashok
See Also:
ActivityCheckFilter

Nested Class Summary
static interface IdleTimeoutFilter.TimeoutHandler
           
static interface IdleTimeoutFilter.TimeoutResolver
           
 
Field Summary
static java.lang.Long FOREVER
           
static java.lang.Long FOREVER_SPECIAL
           
static java.lang.String IDLE_ATTRIBUTE_NAME
           
 
Constructor Summary
protected IdleTimeoutFilter(DelayedExecutor executor, DelayedExecutor.Worker<Connection> worker, IdleTimeoutFilter.TimeoutResolver timeoutResolver)
           
  IdleTimeoutFilter(DelayedExecutor executor, IdleTimeoutFilter.TimeoutResolver timeoutResolver)
           
  IdleTimeoutFilter(DelayedExecutor executor, IdleTimeoutFilter.TimeoutResolver timeoutResolver, IdleTimeoutFilter.TimeoutHandler handler)
           
  IdleTimeoutFilter(DelayedExecutor executor, long timeout, java.util.concurrent.TimeUnit timeoutUnit)
           
  IdleTimeoutFilter(DelayedExecutor executor, long timeout, java.util.concurrent.TimeUnit timeUnit, IdleTimeoutFilter.TimeoutHandler handler)
           
 
Method Summary
static DelayedExecutor createDefaultIdleDelayedExecutor()
           
static DelayedExecutor createDefaultIdleDelayedExecutor(long checkInterval, java.util.concurrent.TimeUnit checkIntervalUnit)
           
 DelayedExecutor.Resolver<Connection> getResolver()
           
 NextAction handleAccept(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when server channel has accepted the client connection.
 NextAction handleClose(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when connection has been closed.
 NextAction handleConnect(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when channel gets connected.
 NextAction handleRead(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when channel will become available for reading.
 NextAction handleWrite(FilterChainContext ctx)
          Execute a unit of processing work to be performed, when some data should be written on channel.
protected  void queueAction(FilterChainContext ctx)
           
static void setCustomTimeout(Connection connection, long timeout, java.util.concurrent.TimeUnit timeunit)
          Provides an override mechanism for the default timeout.
 
Methods inherited from class org.glassfish.grizzly.filterchain.BaseFilter
createContext, exceptionOccurred, getFilterChain, getIndex, handleEvent, onAdded, onFilterChainChanged, onRemoved
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FOREVER

public static final java.lang.Long FOREVER

FOREVER_SPECIAL

public static final java.lang.Long FOREVER_SPECIAL

IDLE_ATTRIBUTE_NAME

public static final java.lang.String IDLE_ATTRIBUTE_NAME
See Also:
Constant Field Values
Constructor Detail

IdleTimeoutFilter

public IdleTimeoutFilter(DelayedExecutor executor,
                         long timeout,
                         java.util.concurrent.TimeUnit timeoutUnit)

IdleTimeoutFilter

public IdleTimeoutFilter(DelayedExecutor executor,
                         IdleTimeoutFilter.TimeoutResolver timeoutResolver)

IdleTimeoutFilter

public IdleTimeoutFilter(DelayedExecutor executor,
                         long timeout,
                         java.util.concurrent.TimeUnit timeUnit,
                         IdleTimeoutFilter.TimeoutHandler handler)

IdleTimeoutFilter

public IdleTimeoutFilter(DelayedExecutor executor,
                         IdleTimeoutFilter.TimeoutResolver timeoutResolver,
                         IdleTimeoutFilter.TimeoutHandler handler)

IdleTimeoutFilter

protected IdleTimeoutFilter(DelayedExecutor executor,
                            DelayedExecutor.Worker<Connection> worker,
                            IdleTimeoutFilter.TimeoutResolver timeoutResolver)
Method Detail

handleAccept

public NextAction handleAccept(FilterChainContext ctx)
                        throws java.io.IOException
Description copied from class: BaseFilter
Execute a unit of processing work to be performed, when server channel has accepted the client connection. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Specified by:
handleAccept in interface Filter
Overrides:
handleAccept in class BaseFilter
Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
java.io.IOException

handleConnect

public NextAction handleConnect(FilterChainContext ctx)
                         throws java.io.IOException
Description copied from class: BaseFilter
Execute a unit of processing work to be performed, when channel gets connected. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Specified by:
handleConnect in interface Filter
Overrides:
handleConnect in class BaseFilter
Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
java.io.IOException

handleRead

public NextAction handleRead(FilterChainContext ctx)
                      throws java.io.IOException
Description copied from class: BaseFilter
Execute a unit of processing work to be performed, when channel will become available for reading. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Specified by:
handleRead in interface Filter
Overrides:
handleRead in class BaseFilter
Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
java.io.IOException

handleWrite

public NextAction handleWrite(FilterChainContext ctx)
                       throws java.io.IOException
Description copied from class: BaseFilter
Execute a unit of processing work to be performed, when some data should be written on channel. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Specified by:
handleWrite in interface Filter
Overrides:
handleWrite in class BaseFilter
Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
java.io.IOException

handleClose

public NextAction handleClose(FilterChainContext ctx)
                       throws java.io.IOException
Description copied from class: BaseFilter
Execute a unit of processing work to be performed, when connection has been closed. This Filter may either complete the required processing and return false, or delegate remaining processing to the next Filter in a FilterChain containing this Filter by returning true.

Specified by:
handleClose in interface Filter
Overrides:
handleClose in class BaseFilter
Parameters:
ctx - FilterChainContext
Returns:
NextAction instruction for FilterChain, how it should continue the execution
Throws:
java.io.IOException

getResolver

public DelayedExecutor.Resolver<Connection> getResolver()

createDefaultIdleDelayedExecutor

public static DelayedExecutor createDefaultIdleDelayedExecutor()

createDefaultIdleDelayedExecutor

public static DelayedExecutor createDefaultIdleDelayedExecutor(long checkInterval,
                                                               java.util.concurrent.TimeUnit checkIntervalUnit)

setCustomTimeout

public static void setCustomTimeout(Connection connection,
                                    long timeout,
                                    java.util.concurrent.TimeUnit timeunit)
Provides an override mechanism for the default timeout.

Parameters:
connection - The Connection which is having the idle detection adjusted.
timeout - the new idle timeout.
timeunit - TimeUnit.

queueAction

protected void queueAction(FilterChainContext ctx)


Copyright © 2012 Oracle Corporation. All Rights Reserved.