Package org.apache.mina.common.support
Class AbstractIoFilterChain
- java.lang.Object
-
- org.apache.mina.common.support.AbstractIoFilterChain
-
- All Implemented Interfaces:
IoFilterChain
- Direct Known Subclasses:
VmPipeFilterChain
public abstract class AbstractIoFilterChain extends java.lang.Object implements IoFilterChain
An abstract implementation ofIoFilterChain
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 forIoFilter.filterWrite(NextFilter, IoSession, IoFilter.WriteRequest)
and finally to be written out.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.mina.common.IoFilterChain
IoFilterChain.Entry
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CONNECT_FUTURE
A session attribute that stores aConnectFuture
related with theIoSession
.
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractIoFilterChain(IoSession session)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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 isbaseName
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 isbaseName
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 anIoFilter
of the specified filterType.boolean
contains(java.lang.String name)
Returns true if this chain contains anIoFilter
with the specified name.boolean
contains(IoFilter filter)
Returns true if this chain contains the specified filter.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 aIoHandler.exceptionCaught(IoSession, Throwable)
event.void
fireFilterClose(IoSession session)
Fires aIoSession.close()
event.void
fireFilterWrite(IoSession session, IoFilter.WriteRequest writeRequest)
Fires aIoSession.write(Object)
event.void
fireMessageReceived(IoSession session, java.lang.Object message)
Fires aIoFilterChain.fireMessageReceived(IoSession, Object)
event.void
fireMessageSent(IoSession session, IoFilter.WriteRequest request)
Fires aIoHandler.sessionOpened(IoSession)
event.void
fireSessionClosed(IoSession session)
Fires aIoHandler.sessionClosed(IoSession)
event.void
fireSessionCreated(IoSession session)
Fires aIoHandler.sessionCreated(IoSession)
event.void
fireSessionIdle(IoSession session, IdleStatus status)
Fires aIoHandler.sessionIdle(IoSession, IdleStatus)
event.void
fireSessionOpened(IoSession session)
Fires aIoHandler.sessionOpened(IoSession)
event.IoFilter
get(java.lang.String name)
Returns theIoFilter
with the specified name in this chain.java.util.List<IoFilterChain.Entry>
getAll()
Returns the list of allIoFilterChain.Entry
s this chain contains.java.util.List<IoFilterChain.Entry>
getAllReversed()
Returns the reversed list of allIoFilterChain.Entry
s this chain contains.IoFilterChain.Entry
getEntry(java.lang.String name)
Returns theIoFilterChain.Entry
with the specified name in this chain.IoFilter.NextFilter
getNextFilter(java.lang.String name)
Returns theIoFilter.NextFilter
of theIoFilter
with the specified name in this chain.IoSession
getSession()
Returns the parentIoSession
of this chain.IoFilter
remove(java.lang.String name)
Removes the filter with the specified name from this chain.java.lang.String
toString()
-
-
-
Field Detail
-
CONNECT_FUTURE
public static final java.lang.String CONNECT_FUTURE
A session attribute that stores aConnectFuture
related with theIoSession
.AbstractIoFilterChain
clears this attribute and notifies the future whenfireSessionOpened(IoSession)
orfireExceptionCaught(IoSession, Throwable)
is invoked
-
-
Constructor Detail
-
AbstractIoFilterChain
protected AbstractIoFilterChain(IoSession session)
-
-
Method Detail
-
getSession
public IoSession getSession()
Description copied from interface:IoFilterChain
Returns the parentIoSession
of this chain.- Specified by:
getSession
in interfaceIoFilterChain
- Returns:
IoSession
-
getEntry
public IoFilterChain.Entry getEntry(java.lang.String name)
Description copied from interface:IoFilterChain
Returns theIoFilterChain.Entry
with the specified name in this chain.- Specified by:
getEntry
in interfaceIoFilterChain
- Returns:
- null if there's no such name in this chain
-
get
public IoFilter get(java.lang.String name)
Description copied from interface:IoFilterChain
Returns theIoFilter
with the specified name in this chain.- Specified by:
get
in interfaceIoFilterChain
- Returns:
- null if there's no such name in this chain
-
getNextFilter
public IoFilter.NextFilter getNextFilter(java.lang.String name)
Description copied from interface:IoFilterChain
Returns theIoFilter.NextFilter
of theIoFilter
with the specified name in this chain.- Specified by:
getNextFilter
in interfaceIoFilterChain
- Returns:
- null if there's no such name in this chain
-
addFirst
public void addFirst(java.lang.String name, IoFilter filter)
Description copied from interface:IoFilterChain
Adds the specified filter with the specified name at the beginning of this chain.- Specified by:
addFirst
in interfaceIoFilterChain
-
addLast
public void addLast(java.lang.String name, IoFilter filter)
Description copied from interface:IoFilterChain
Adds the specified filter with the specified name at the end of this chain.- Specified by:
addLast
in interfaceIoFilterChain
-
addBefore
public void addBefore(java.lang.String baseName, java.lang.String name, IoFilter filter)
Description copied from interface:IoFilterChain
Adds the specified filter with the specified name just before the filter whose name isbaseName
in this chain.- Specified by:
addBefore
in interfaceIoFilterChain
-
addAfter
public void addAfter(java.lang.String baseName, java.lang.String name, IoFilter filter)
Description copied from interface:IoFilterChain
Adds the specified filter with the specified name just after the filter whose name isbaseName
in this chain.- Specified by:
addAfter
in interfaceIoFilterChain
-
remove
public IoFilter remove(java.lang.String name)
Description copied from interface:IoFilterChain
Removes the filter with the specified name from this chain.- Specified by:
remove
in interfaceIoFilterChain
-
clear
public void clear() throws java.lang.Exception
Description copied from interface:IoFilterChain
Removes all filters added to this chain.- Specified by:
clear
in interfaceIoFilterChain
- Throws:
java.lang.Exception
- ifIoFilter.onPostRemove(IoFilterChain, String, NextFilter)
thrown an exception.
-
fireSessionCreated
public void fireSessionCreated(IoSession session)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireSessionCreated
in interfaceIoFilterChain
-
fireSessionOpened
public void fireSessionOpened(IoSession session)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireSessionOpened
in interfaceIoFilterChain
-
fireSessionClosed
public void fireSessionClosed(IoSession session)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireSessionClosed
in interfaceIoFilterChain
-
fireSessionIdle
public void fireSessionIdle(IoSession session, IdleStatus status)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireSessionIdle
in interfaceIoFilterChain
-
fireMessageReceived
public void fireMessageReceived(IoSession session, java.lang.Object message)
Description copied from interface:IoFilterChain
Fires aIoFilterChain.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.- Specified by:
fireMessageReceived
in interfaceIoFilterChain
-
fireMessageSent
public void fireMessageSent(IoSession session, IoFilter.WriteRequest request)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireMessageSent
in interfaceIoFilterChain
-
fireExceptionCaught
public void fireExceptionCaught(IoSession session, java.lang.Throwable cause)
Description copied from interface:IoFilterChain
Fires aIoHandler.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.- Specified by:
fireExceptionCaught
in interfaceIoFilterChain
-
fireFilterWrite
public void fireFilterWrite(IoSession session, IoFilter.WriteRequest writeRequest)
Description copied from interface:IoFilterChain
Fires aIoSession.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.- Specified by:
fireFilterWrite
in interfaceIoFilterChain
-
fireFilterClose
public void fireFilterClose(IoSession session)
Description copied from interface:IoFilterChain
Fires aIoSession.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.- Specified by:
fireFilterClose
in interfaceIoFilterChain
-
getAll
public java.util.List<IoFilterChain.Entry> getAll()
Description copied from interface:IoFilterChain
Returns the list of allIoFilterChain.Entry
s this chain contains.- Specified by:
getAll
in interfaceIoFilterChain
-
getAllReversed
public java.util.List<IoFilterChain.Entry> getAllReversed()
Description copied from interface:IoFilterChain
Returns the reversed list of allIoFilterChain.Entry
s this chain contains.- Specified by:
getAllReversed
in interfaceIoFilterChain
-
contains
public boolean contains(java.lang.String name)
Description copied from interface:IoFilterChain
Returns true if this chain contains anIoFilter
with the specified name.- Specified by:
contains
in interfaceIoFilterChain
-
contains
public boolean contains(IoFilter filter)
Description copied from interface:IoFilterChain
Returns true if this chain contains the specified filter.- Specified by:
contains
in interfaceIoFilterChain
-
contains
public boolean contains(java.lang.Class<? extends IoFilter> filterType)
Description copied from interface:IoFilterChain
Returns true if this chain contains anIoFilter
of the specified filterType.- Specified by:
contains
in interfaceIoFilterChain
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
doWrite
protected abstract void doWrite(IoSession session, IoFilter.WriteRequest writeRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doClose
protected abstract void doClose(IoSession session) throws java.lang.Exception
- Throws:
java.lang.Exception
-
-