org.apache.qpid.server.transport
Class ThreadPoolFilter

java.lang.Object
  extended by org.apache.mina.common.IoFilterAdapter
      extended by org.apache.qpid.server.transport.ThreadPoolFilter
All Implemented Interfaces:
org.apache.mina.common.IoFilter

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

A Thread-pooling filter. This filter forwards IoHandler events to its thread pool.

This is an implementation of Leader/Followers thread pool by Douglas C. Schmidt et al.


Nested Class Summary
protected static class ThreadPoolFilter.Event
           
protected static class ThreadPoolFilter.EventType
           
protected static class ThreadPoolFilter.SessionBuffer
           
 
Nested classes/interfaces inherited from interface org.apache.mina.common.IoFilter
org.apache.mina.common.IoFilter.NextFilter, org.apache.mina.common.IoFilter.WriteRequest
 
Field Summary
static int DEFAULT_KEEP_ALIVE_TIME
          Default keep-alive time of thread pool (1 min).
static int DEFAULT_MAXIMUM_POOL_SIZE
          Default maximum size of thread pool (2G).
 
Constructor Summary
ThreadPoolFilter()
          Creates a new instance of this filter with default thread pool settings.
ThreadPoolFilter(java.lang.String threadNamePrefix)
          Creates a new instance of this filter with the specified thread name prefix and other default settings.
 
Method Summary
 void destroy()
           
 void exceptionCaught(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, java.lang.Throwable cause)
           
protected  ThreadPoolFilter.SessionBuffer fetchSessionBuffer(org.apache.mina.util.Queue unfetchedSessionBuffers)
          Implement this method to fetch (or pop) a ThreadPoolFilter.SessionBuffer from the given unfetchedSessionBuffers.
 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)
           
 int getKeepAliveTime()
           
 int getMaximumPoolSize()
           
 int getPoolSize()
           
 java.lang.String getThreadNamePrefix()
           
 void init()
           
 void messageReceived(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, java.lang.Object message)
           
 void messageSent(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, java.lang.Object message)
           
protected  void processEvent(org.apache.mina.common.IoFilter.NextFilter nextFilter, org.apache.mina.common.IoSession session, ThreadPoolFilter.EventType type, java.lang.Object data)
           
 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)
           
 void setKeepAliveTime(int keepAliveTime)
           
 void setMaximumPoolSize(int maximumPoolSize)
           
 
Methods inherited from class org.apache.mina.common.IoFilterAdapter
onPostAdd, onPostRemove, onPreAdd, onPreRemove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MAXIMUM_POOL_SIZE

public static final int DEFAULT_MAXIMUM_POOL_SIZE
Default maximum size of thread pool (2G).

See Also:
Constant Field Values

DEFAULT_KEEP_ALIVE_TIME

public static final int DEFAULT_KEEP_ALIVE_TIME
Default keep-alive time of thread pool (1 min).

See Also:
Constant Field Values
Constructor Detail

ThreadPoolFilter

public ThreadPoolFilter()
Creates a new instance of this filter with default thread pool settings.


ThreadPoolFilter

public ThreadPoolFilter(java.lang.String threadNamePrefix)
Creates a new instance of this filter with the specified thread name prefix and other default settings.

Parameters:
threadNamePrefix - the prefix of the thread names this pool will create.
Method Detail

getThreadNamePrefix

public java.lang.String getThreadNamePrefix()

getPoolSize

public int getPoolSize()

getMaximumPoolSize

public int getMaximumPoolSize()

getKeepAliveTime

public int getKeepAliveTime()

setMaximumPoolSize

public void setMaximumPoolSize(int maximumPoolSize)

setKeepAliveTime

public void setKeepAliveTime(int keepAliveTime)

init

public void init()
Specified by:
init in interface org.apache.mina.common.IoFilter
Overrides:
init in class org.apache.mina.common.IoFilterAdapter

destroy

public void destroy()
Specified by:
destroy in interface org.apache.mina.common.IoFilter
Overrides:
destroy in class org.apache.mina.common.IoFilterAdapter

fetchSessionBuffer

protected ThreadPoolFilter.SessionBuffer fetchSessionBuffer(org.apache.mina.util.Queue unfetchedSessionBuffers)
Implement this method to fetch (or pop) a ThreadPoolFilter.SessionBuffer from the given unfetchedSessionBuffers. The default implementation simply pops the buffer from it. You could prioritize the fetch order.

Returns:
A non-null ThreadPoolFilter.SessionBuffer

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,
                            java.lang.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,
                            java.lang.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,
                        java.lang.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,
                            ThreadPoolFilter.EventType type,
                            java.lang.Object 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 java.lang.Exception
Specified by:
filterClose in interface org.apache.mina.common.IoFilter
Overrides:
filterClose in class org.apache.mina.common.IoFilterAdapter
Throws:
java.lang.Exception