org.apache.mina.filter.executor

Class ExecutorFilter

Implemented Interfaces:
IoFilter

public class ExecutorFilter
extends IoFilterAdapter

A filter that forward events to Executor in backport-util-concurrent. You can apply various thread model by inserting this filter to the IoFilterChain.

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

Nested Class Summary

protected static class
ExecutorFilter.Event
protected static class
ExecutorFilter.EventType

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.

Method Summary

void
exceptionCaught(NextFilter nextFilter, IoSession session, Throwable cause)
void
filterClose(NextFilter nextFilter, IoSession session)
void
filterWrite(NextFilter nextFilter, IoSession session, WriteRequest writeRequest)
Executor
getExecutor()
Returns the underlying Executor instance this filter uses.
void
messageReceived(NextFilter nextFilter, IoSession session, Object message)
void
messageSent(NextFilter nextFilter, IoSession session, Object message)
protected void
processEvent(NextFilter nextFilter, IoSession session, ExecutorFilter.EventType type, Object data)
void
sessionClosed(NextFilter nextFilter, IoSession session)
void
sessionCreated(NextFilter nextFilter, IoSession session)
void
sessionIdle(NextFilter nextFilter, IoSession session, IdleStatus status)
void
sessionOpened(NextFilter nextFilter, IoSession session)

Methods inherited from class org.apache.mina.common.IoFilterAdapter

destroy, exceptionCaught, filterClose, filterWrite, init, messageReceived, messageSent, onPostAdd, onPostRemove, onPreAdd, onPreRemove, sessionClosed, sessionCreated, sessionIdle, sessionOpened

Constructor Details

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.

Method Details

exceptionCaught

public void exceptionCaught(NextFilter nextFilter,
                            IoSession session,
                            Throwable cause)
Overrides:
exceptionCaught in interface IoFilterAdapter

filterClose

public void filterClose(NextFilter nextFilter,
                        IoSession session)
            throws Exception
Overrides:
filterClose in interface IoFilterAdapter

filterWrite

public void filterWrite(NextFilter nextFilter,
                        IoSession session,
                        WriteRequest writeRequest)
Overrides:
filterWrite in interface IoFilterAdapter

getExecutor

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

messageReceived

public void messageReceived(NextFilter nextFilter,
                            IoSession session,
                            Object message)
Overrides:
messageReceived in interface IoFilterAdapter

messageSent

public void messageSent(NextFilter nextFilter,
                        IoSession session,
                        Object message)
Overrides:
messageSent in interface IoFilterAdapter

processEvent

protected void processEvent(NextFilter nextFilter,
                            IoSession session,
                            ExecutorFilter.EventType type,
                            Object data)

sessionClosed

public void sessionClosed(NextFilter nextFilter,
                          IoSession session)
Overrides:
sessionClosed in interface IoFilterAdapter

sessionCreated

public void sessionCreated(NextFilter nextFilter,
                           IoSession session)
Overrides:
sessionCreated in interface IoFilterAdapter

sessionIdle

public void sessionIdle(NextFilter nextFilter,
                        IoSession session,
                        IdleStatus status)
Overrides:
sessionIdle in interface IoFilterAdapter

sessionOpened

public void sessionOpened(NextFilter nextFilter,
                          IoSession session)
Overrides:
sessionOpened in interface IoFilterAdapter