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.Entrys this chain contains. |
java.util.List<IoFilterChain.Entry> |
getAllReversed()
Returns the reversed list of all
IoFilterChain.Entrys 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()
IoFilterChainIoSession of this chain.getSession in interface IoFilterChainIoSessionpublic IoFilterChain.Entry getEntry(java.lang.String name)
IoFilterChainIoFilterChain.Entry with the specified name in this chain.getEntry in interface IoFilterChainpublic IoFilter get(java.lang.String name)
IoFilterChainIoFilter with the specified name in this chain.get in interface IoFilterChainpublic IoFilter.NextFilter getNextFilter(java.lang.String name)
IoFilterChainIoFilter.NextFilter of the IoFilter with the
specified name in this chain.getNextFilter in interface IoFilterChainpublic void addFirst(java.lang.String name,
IoFilter filter)
IoFilterChainaddFirst in interface IoFilterChainpublic void addLast(java.lang.String name,
IoFilter filter)
IoFilterChainaddLast in interface IoFilterChainpublic void addBefore(java.lang.String baseName,
java.lang.String name,
IoFilter filter)
IoFilterChainbaseName in this chain.addBefore in interface IoFilterChainpublic void addAfter(java.lang.String baseName,
java.lang.String name,
IoFilter filter)
IoFilterChainbaseName in this chain.addAfter in interface IoFilterChainpublic IoFilter remove(java.lang.String name)
IoFilterChainremove in interface IoFilterChainpublic void clear()
throws java.lang.Exception
IoFilterChainclear in interface IoFilterChainjava.lang.Exception - if IoFilter.onPostRemove(IoFilterChain, String, NextFilter) thrown an exception.public void fireSessionCreated(IoSession session)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireSessionOpened(IoSession session)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireSessionClosed(IoSession session)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireSessionIdle(IoSession session, IdleStatus status)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireMessageReceived(IoSession session, java.lang.Object message)
IoFilterChainIoFilterChain.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 IoFilterChainpublic void fireMessageSent(IoSession session, IoFilter.WriteRequest request)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireExceptionCaught(IoSession session, java.lang.Throwable cause)
IoFilterChainIoHandler.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 IoFilterChainpublic void fireFilterWrite(IoSession session, IoFilter.WriteRequest writeRequest)
IoFilterChainIoSession.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 IoFilterChainpublic void fireFilterClose(IoSession session)
IoFilterChainIoSession.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 IoFilterChainpublic java.util.List<IoFilterChain.Entry> getAll()
IoFilterChainIoFilterChain.Entrys this chain contains.getAll in interface IoFilterChainpublic java.util.List<IoFilterChain.Entry> getAllReversed()
IoFilterChainIoFilterChain.Entrys this chain contains.getAllReversed in interface IoFilterChainpublic boolean contains(java.lang.String name)
IoFilterChainIoFilter with the
specified name.contains in interface IoFilterChainpublic boolean contains(IoFilter filter)
IoFilterChaincontains in interface IoFilterChainpublic boolean contains(java.lang.Class<? extends IoFilter> filterType)
IoFilterChainIoFilter of the
specified filterType.contains in interface IoFilterChainpublic java.lang.String toString()
toString in class java.lang.Objectprotected void finalize()
throws java.lang.Throwable
finalize in class java.lang.Objectjava.lang.Throwableprotected abstract void doWrite(IoSession session, IoFilter.WriteRequest writeRequest) throws java.lang.Exception
java.lang.Exceptionprotected abstract void doClose(IoSession session) throws java.lang.Exception
java.lang.Exception