org.apache.mina.common.support
public abstract class AbstractIoFilterChain extends java.lang.Object implements IoFilterChain
IoFilterChain
that provides
common operations for developers to implement their own transport layer.
The only method a developer should implement is
doWrite(IoSession, IoFilter.WriteRequest)
. This method is invoked
when filter chain is evaluated for
IoFilter.filterWrite(NextFilter, IoSession, IoFilter.WriteRequest)
and
finally to be written out.
IoFilterChain.Entry
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CONNECT_FUTURE
A session attribute that stores a
ConnectFuture related with
the IoSession . |
Modifier | Constructor and Description |
---|---|
protected |
AbstractIoFilterChain(IoSession session) |
Modifier and Type | Method and Description |
---|---|
void |
addAfter(java.lang.String baseName,
java.lang.String name,
IoFilter filter)
Adds the specified filter with the specified name just after the filter whose name is
baseName in this chain. |
void |
addBefore(java.lang.String baseName,
java.lang.String name,
IoFilter filter)
Adds the specified filter with the specified name just before the filter whose name is
baseName in this chain. |
void |
addFirst(java.lang.String name,
IoFilter filter)
Adds the specified filter with the specified name at the beginning of this chain.
|
void |
addLast(java.lang.String name,
IoFilter filter)
Adds the specified filter with the specified name at the end of this chain.
|
void |
clear()
Removes all filters added to this chain.
|
boolean |
contains(java.lang.Class<? extends IoFilter> filterType)
Returns true if this chain contains an
IoFilter of the
specified filterType. |
boolean |
contains(IoFilter filter)
Returns true if this chain contains the specified filter.
|
boolean |
contains(java.lang.String name)
Returns true if this chain contains an
IoFilter with the
specified name. |
protected abstract void |
doClose(IoSession session) |
protected abstract void |
doWrite(IoSession session,
IoFilter.WriteRequest writeRequest) |
protected void |
finalize() |
void |
fireExceptionCaught(IoSession session,
java.lang.Throwable cause)
Fires a
IoHandler.exceptionCaught(IoSession, Throwable) event. |
void |
fireFilterClose(IoSession session)
Fires a
IoSession.close() event. |
void |
fireFilterWrite(IoSession session,
IoFilter.WriteRequest writeRequest)
Fires a
IoSession.write(Object) event. |
void |
fireMessageReceived(IoSession session,
java.lang.Object message)
Fires a
IoFilterChain.fireMessageReceived(IoSession, Object) event. |
void |
fireMessageSent(IoSession session,
IoFilter.WriteRequest request)
Fires a
IoHandler.sessionOpened(IoSession) event. |
void |
fireSessionClosed(IoSession session)
Fires a
IoHandler.sessionClosed(IoSession) event. |
void |
fireSessionCreated(IoSession session)
Fires a
IoHandler.sessionCreated(IoSession) event. |
void |
fireSessionIdle(IoSession session,
IdleStatus status)
Fires a
IoHandler.sessionIdle(IoSession, IdleStatus) event. |
void |
fireSessionOpened(IoSession session)
Fires a
IoHandler.sessionOpened(IoSession) event. |
IoFilter |
get(java.lang.String name)
Returns the
IoFilter with the specified name in this chain. |
java.util.List<IoFilterChain.Entry> |
getAll()
Returns the list of all
IoFilterChain.Entry s this chain contains. |
java.util.List<IoFilterChain.Entry> |
getAllReversed()
Returns the reversed list of all
IoFilterChain.Entry s this chain contains. |
IoFilterChain.Entry |
getEntry(java.lang.String name)
Returns the
IoFilterChain.Entry with the specified name in this chain. |
IoFilter.NextFilter |
getNextFilter(java.lang.String name)
Returns the
IoFilter.NextFilter of the IoFilter with the
specified name in this chain. |
IoSession |
getSession()
Returns the parent
IoSession of this chain. |
IoFilter |
remove(java.lang.String name)
Removes the filter with the specified name from this chain.
|
java.lang.String |
toString() |
public static final java.lang.String CONNECT_FUTURE
ConnectFuture
related with
the IoSession
. AbstractIoFilterChain
clears this
attribute and notifies the future when fireSessionOpened(IoSession)
or fireExceptionCaught(IoSession, Throwable)
is invokedprotected AbstractIoFilterChain(IoSession session)
public IoSession getSession()
IoFilterChain
IoSession
of this chain.getSession
in interface IoFilterChain
IoSession
public IoFilterChain.Entry getEntry(java.lang.String name)
IoFilterChain
IoFilterChain.Entry
with the specified name in this chain.getEntry
in interface IoFilterChain
public IoFilter get(java.lang.String name)
IoFilterChain
IoFilter
with the specified name in this chain.get
in interface IoFilterChain
public IoFilter.NextFilter getNextFilter(java.lang.String name)
IoFilterChain
IoFilter.NextFilter
of the IoFilter
with the
specified name in this chain.getNextFilter
in interface IoFilterChain
public void addFirst(java.lang.String name, IoFilter filter)
IoFilterChain
addFirst
in interface IoFilterChain
public void addLast(java.lang.String name, IoFilter filter)
IoFilterChain
addLast
in interface IoFilterChain
public void addBefore(java.lang.String baseName, java.lang.String name, IoFilter filter)
IoFilterChain
baseName
in this chain.addBefore
in interface IoFilterChain
public void addAfter(java.lang.String baseName, java.lang.String name, IoFilter filter)
IoFilterChain
baseName
in this chain.addAfter
in interface IoFilterChain
public IoFilter remove(java.lang.String name)
IoFilterChain
remove
in interface IoFilterChain
public void clear() throws java.lang.Exception
IoFilterChain
clear
in interface IoFilterChain
java.lang.Exception
- if IoFilter.onPostRemove(IoFilterChain, String, NextFilter)
thrown an exception.public void fireSessionCreated(IoSession session)
IoFilterChain
IoHandler.sessionCreated(IoSession)
event. Most users don't need to
call this method at all. Please use this method only when you implement a new transport
or fire a virtual event.fireSessionCreated
in interface IoFilterChain
public void fireSessionOpened(IoSession session)
IoFilterChain
IoHandler.sessionOpened(IoSession)
event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireSessionOpened
in interface IoFilterChain
public void fireSessionClosed(IoSession session)
IoFilterChain
IoHandler.sessionClosed(IoSession)
event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireSessionClosed
in interface IoFilterChain
public void fireSessionIdle(IoSession session, IdleStatus status)
IoFilterChain
IoHandler.sessionIdle(IoSession, IdleStatus)
event. Most users don't
need to call this method at all. Please use this method only when you implement a new
transport or fire a virtual event.fireSessionIdle
in interface IoFilterChain
public void fireMessageReceived(IoSession session, java.lang.Object message)
IoFilterChain
IoFilterChain.fireMessageReceived(IoSession, Object)
event. Most users don't need to
call this method at all. Please use this method only when you implement a new transport
or fire a virtual event.fireMessageReceived
in interface IoFilterChain
public void fireMessageSent(IoSession session, IoFilter.WriteRequest request)
IoFilterChain
IoHandler.sessionOpened(IoSession)
event. Most users don't need to call
this method at all. Please use this method only when you implement a new transport or
fire a virtual event.fireMessageSent
in interface IoFilterChain
public void fireExceptionCaught(IoSession session, java.lang.Throwable cause)
IoFilterChain
IoHandler.exceptionCaught(IoSession, Throwable)
event. Most users don't
need to call this method at all. Please use this method only when you implement a new
transport or fire a virtual event.fireExceptionCaught
in interface IoFilterChain
public void fireFilterWrite(IoSession session, IoFilter.WriteRequest writeRequest)
IoFilterChain
IoSession.write(Object)
event. Most users don't need to call this
method at all. Please use this method only when you implement a new transport or fire a
virtual event.fireFilterWrite
in interface IoFilterChain
public void fireFilterClose(IoSession session)
IoFilterChain
IoSession.close()
event. Most users don't need to call this method at
all. Please use this method only when you implement a new transport or fire a virtual
event.fireFilterClose
in interface IoFilterChain
public java.util.List<IoFilterChain.Entry> getAll()
IoFilterChain
IoFilterChain.Entry
s this chain contains.getAll
in interface IoFilterChain
public java.util.List<IoFilterChain.Entry> getAllReversed()
IoFilterChain
IoFilterChain.Entry
s this chain contains.getAllReversed
in interface IoFilterChain
public boolean contains(java.lang.String name)
IoFilterChain
IoFilter
with the
specified name.contains
in interface IoFilterChain
public boolean contains(IoFilter filter)
IoFilterChain
contains
in interface IoFilterChain
public boolean contains(java.lang.Class<? extends IoFilter> filterType)
IoFilterChain
IoFilter
of the
specified filterType.contains
in interface IoFilterChain
public java.lang.String toString()
toString
in class java.lang.Object
protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
protected abstract void doWrite(IoSession session, IoFilter.WriteRequest writeRequest) throws java.lang.Exception
java.lang.Exception
protected abstract void doClose(IoSession session) throws java.lang.Exception
java.lang.Exception