org.red5.io.filter
Class ExecutorFilter

java.lang.Object
  extended by org.apache.mina.common.IoFilterAdapter
      extended by org.red5.io.filter.ExecutorFilter
All Implemented Interfaces:
org.apache.mina.common.IoFilter

public class ExecutorFilter
extends org.apache.mina.common.IoFilterAdapter

A filter that forward events to Executor. You can apply various thread model by inserting this filter to the IoFilterChain. This filter is usually inserted by ThreadModel automatically, so you don't need to add this filter in most cases.

Please note that this filter doesn't manage the life cycle of the underlying Executor. You have to destroy or stop it by yourself. Apache Directory Project


Nested Class Summary
protected static class ExecutorFilter.Event
          Connection event
protected static class ExecutorFilter.EventType
          Type of event
 
Nested classes/interfaces inherited from interface org.apache.mina.common.IoFilter
org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoFilter.WriteRequest
 
Constructor Summary
ExecutorFilter()
          Creates a new instace with the default thread pool implementation (new ThreadPoolExecutor(16, 16, 60, TimeUnit.SECONDS, new LinkedBlockingQueue() )).
ExecutorFilter(Executor executor)
          Creates a new instance with the specified executor.
ExecutorFilter(int corePoolSize, int maximumPoolSize, long keepAliveTime)
          Creates new instance with specified core pool size, maximum pool size and keep alive time
 
Method Summary
 void exceptionCaught(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, Throwable cause)
          
 void filterClose(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session)
          
 void filterWrite(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, org.apache.mina.common.IoFilter.WriteRequest writeRequest)
          
 Executor getExecutor()
          Returns the underlying Executor instance this filter uses.
 void messageReceived(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, Object message)
          
 void messageSent(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, Object message)
          
protected  void processEvent(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, ExecutorFilter.EventType type, Object data)
          Handles event
 void sessionClosed(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session)
          
 void sessionCreated(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session)
          
 void sessionIdle(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, org.apache.mina.common.IdleStatus status)
          
 void sessionOpened(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session)
          
 
Methods inherited from class org.apache.mina.common.IoFilterAdapter
destroy, init, onPostAdd, onPostRemove, onPreAdd, onPreRemove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExecutorFilter

public ExecutorFilter()
Creates a new instace with the default thread pool implementation (new ThreadPoolExecutor(16, 16, 60, TimeUnit.SECONDS, new LinkedBlockingQueue() )).


ExecutorFilter

public ExecutorFilter(Executor executor)
Creates a new instance with the specified executor.

Parameters:
executor - Executor

ExecutorFilter

public ExecutorFilter(int corePoolSize,
                      int maximumPoolSize,
                      long keepAliveTime)
Creates new instance with specified core pool size, maximum pool size and keep alive time

Parameters:
corePoolSize - Core pool size
maximumPoolSize - Maximum pool size
keepAliveTime - Keep alive time (in seconds)
Method Detail

getExecutor

public Executor getExecutor()
Returns the underlying Executor instance this filter uses.

Returns:
Executor object

sessionCreated

public void sessionCreated(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                           org.apache.mina.common.IoSession session)

Specified by:
sessionCreated in interface org.apache.mina.common.IoFilter
Overrides:
sessionCreated in class org.apache.mina.common.IoFilterAdapter

sessionOpened

public void sessionOpened(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                          org.apache.mina.common.IoSession session)

Specified by:
sessionOpened in interface org.apache.mina.common.IoFilter
Overrides:
sessionOpened in class org.apache.mina.common.IoFilterAdapter

sessionClosed

public void sessionClosed(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                          org.apache.mina.common.IoSession session)

Specified by:
sessionClosed in interface org.apache.mina.common.IoFilter
Overrides:
sessionClosed in class org.apache.mina.common.IoFilterAdapter

sessionIdle

public void sessionIdle(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                        org.apache.mina.common.IoSession session,
                        org.apache.mina.common.IdleStatus status)

Specified by:
sessionIdle in interface org.apache.mina.common.IoFilter
Overrides:
sessionIdle in class org.apache.mina.common.IoFilterAdapter

exceptionCaught

public void exceptionCaught(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                            org.apache.mina.common.IoSession session,
                            Throwable cause)

Specified by:
exceptionCaught in interface org.apache.mina.common.IoFilter
Overrides:
exceptionCaught in class org.apache.mina.common.IoFilterAdapter

messageReceived

public void messageReceived(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                            org.apache.mina.common.IoSession session,
                            Object message)

Specified by:
messageReceived in interface org.apache.mina.common.IoFilter
Overrides:
messageReceived in class org.apache.mina.common.IoFilterAdapter

messageSent

public void messageSent(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                        org.apache.mina.common.IoSession session,
                        Object message)

Specified by:
messageSent in interface org.apache.mina.common.IoFilter
Overrides:
messageSent in class org.apache.mina.common.IoFilterAdapter

processEvent

protected void processEvent(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                            org.apache.mina.common.IoSession session,
                            ExecutorFilter.EventType type,
                            Object data)
Handles event

Parameters:
nextFilter - Next filter in queue
session - IoSession object (connection between two ends)
type - Event type
data - Event data

filterWrite

public void filterWrite(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                        org.apache.mina.common.IoSession session,
                        org.apache.mina.common.IoFilter.WriteRequest writeRequest)

Specified by:
filterWrite in interface org.apache.mina.common.IoFilter
Overrides:
filterWrite in class org.apache.mina.common.IoFilterAdapter

filterClose

public void filterClose(org.apache.mina.common.IoFilter.NextFilter nextFilter,
                        org.apache.mina.common.IoSession session)
                 throws Exception

Specified by:
filterClose in interface org.apache.mina.common.IoFilter
Overrides:
filterClose in class org.apache.mina.common.IoFilterAdapter
Throws:
Exception


Copyright © 2006-2007 the Red5 project.